728x90
반응형

Android 89

<정리> SelfCheckout & BoxReading

산업용 PDA 회사에 들어가서 앱 만들 일은 없겠다 했는데 생각외로 수습기간 중에 외부 전시회 시연 앱을 맡게 되었다.혼자 만들거나 학교나 학원 팀플이 아닌 회사에서 진행하는 것이다보니 긴장이 많이 되었지만 생각보다 진행에 큰 문제가 없었다. 내가 맡은 앱의 역할은 다른 단말기에 받은 데이터를 서버를 통해 받아와서 화면에 보여주고 버튼을 클릭 시 포맷에 맞는 데이터를 서버로 넘겨주는 것이었다.세부적으로 들어가면 여러 제한사항이나 요구사항들이 있었지만 간단하게는 저렇게 말할 수 있다. 두 앱 모두 비슷한 로직을 사용했고 UI도 비슷했다.그렇기에 짧은 시간에 두 개의 앱을 완성할 수 있었다.데이터 통신에 사용된 것은 MQTT였다.*MQTT : 낮은 대역폭과 리소스가 제한된 환경에서 안정적으로 통신을 할 수 ..

Android/Kotlin 2025.01.31

<정리> Permission

Permission은 특정 시스템 리소스나 제한된 데이터와 작업에 대한 접근과 수정을 허용하는 것 Permission Workflow Permission 유형1. Install-time permissions(설치 시간 권한)앱이 제한된 데이터에 제한적으로 접근하거나, 시스템 또는 다른 앱에 최소한의 영향을 미치는 제한된 작업을 수행할 수 있도록 허용앱 스토어에서 사용자가 앱의 상세 페이지를 볼 때 설치 시간 권한 통지를 사용자에게 제시 → 사용자가 앱 설치할 때 시스템이 자동으로 권한 부여1) Normal permissions(일반 권한)앱이 제한된 데이터에 제한적으로 접근하거나, 시스템 또는 다른 앱에 최소한의 영향을 미치는 권한시스템은 보호수준을 normal로 할당android.permission.I..

Android/StoreInfo 2024.09.22

<정리> Data and file storage

안드로이드는 다른 플랫폼의 디스크 기반 파일 시스템과 유사한 파일 시스템 사용앱은 기본적으로 내부 저장소에 저장되지만 APK 사이즈가 너무 큰 경우에는 매니페스트 파일에서 외부 저장소에 설치하도록 설정 가능 데이터 저장 방법1. App-specific storage(앱 전용 저장소)다른 앱은 접근할 수 없는 해당 앱 전용 저장소App-specific files 저장내부 저장소 경로 : data/data/패키지명 외부 저장소 경로 : /storage/emulated/0/Android/data/패키지명내부/외부 저장소 접근 : Context 사용2. Shared storage(공유 저장소) 다른 앱과 공유하려는 파일(동영상, 문서 등) 저장Shareable media content 저장3. Preferenc..

Android/StoreInfo 2024.09.21

<정리> 명함 앱 만들기 5일차

이력서랑 포트폴리오, 지원서, 자소서 준비하다보니 이걸 건드릴 시간이 없었다... ✔ 요약RoomDatabase 생성 및 Hilt 적용데이터 불러올 때 Paging3와 StateFlow 사용 1. RoomDatabase 생성plugins { ... id("kotlin-kapt")}dependencies { ... implementation("androidx.room:room-runtime:2.6.1") implementation("androidx.room:room-paging:2.6.1") kapt("androidx.room:room-compiler:2.6.1")} 시작은 Data 모듈에서 Entity를 만드는 걸로 시작했다.@Entity 어노테이션과 @PrimaryKey..

Android/Kotlin 2024.07.09

onBackPressedCallback()

API Level 33부터 액티비티에서 onBackPressed()가 더 이상 사용되지 않기 때문에 사용하게 된 onBackPressedCallback() 다음과 같은 형태로 액티비티에서 사용할 수 있고class TestActivity : AppCompatActivity() { private val callback = object : OnBackPressedCallback(true) { override fun handleOnBackPressed() { // 뒤로가기 클릭 시 실행시킬 코드 입력 } } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedI..

Android/StoreInfo 2024.07.03

<정리> 안드로이드 플랫폼

안드로이드는 다양한 기기와 폼 팩터에 사용할 수 있도록 제작된 리눅스 기반의 오픈소스 소프트웨어 스택이다.스택이라고 하는 이유는 여러 소프트웨어가 스택 모양으로 쌓여있기 때문이다. Linux Kernel부터 System Apps까지 존재한다.Linux Kernel안드로이드 플랫폼의 기초Linux Kernel을 사용하면 안드로이드에서 주요 보안 기능을 활용할 수 있고 기기 제조업체에서 잘 알려진 커널용 하드웨어 드라이버를 개발할 수 있다. Hardware Abstraction Layer는 카메라, 오디오, 네트워크 등의 하드웨어 기능을 사용하기 위해 하드웨어 드라이버(Linux Kernel 드라이버)를 호출할 때 Linux Kernel을 사용한다.Native C/C++ Libraries는 메모리 관리, 파..

Android/StoreInfo 2024.07.02

<정리> 버전 카탈로그로 빌드 이전

■ 원문 버전 카탈로그로 빌드 이전  |  Android Studio  |  Android DevelopersGradle 구성 파일을 Gradle 버전 카탈로그로 이전합니다.developer.android.com 오늘 Conductor를 공부해보는 시간을 가지면서 안드로이드 스튜디오에서 새로운 프로젝트를 만들고 의존성을 추가하려고 했는데 build.gradle.kts 파일에 뭔가 큰 변화가 있었다. 플러그인 쪽도 동일한 형태였고 프로젝트 단의 build.gradle.kts 파일도 변경되어있었다.이게 무슨 일인가 하고 찾아봤더니 올해 2월달에 관련 내용이 공식문서에 올라와 있었고 왜 이게 자동으로 적용됐는지는 모르겠다.(하하하) 그래서 이번에 의존성을 적용하면서 겪었던 걸 적어놓고 정리할 겸 글을 작성한다..

Android/StoreInfo 2024.07.01

<정리> 명함 앱 만들기 4일차

✔ 요약Hilt 적용 성공클린 아키텍처에 맞는 로그인 기능 흐름 구현파이어베이스를 통한 로그인/회원가입 기능 구현 1. 힘들었던 Hilt 적용기...왜 그리 적용이 쉽지 않은지...참 여러가지 에러를 만났고 어떻게든 뚫어냈다.먼저 Hilt는 DI, 의존성 주입 시에 사용하는 Google의 Dagger 기반의 라이브러리다.(의존성 주입은 함수에 필요한 클래스 또는 참조변수나 객체에 의존하는 것이라고 한다.)이걸 적용하려고 애를 썼던 것은 코드의 재사용성 향상, 수월한 리팩토링, 의존성 감소, 유연한 코드 등 유지보수에 좋은 영향을 주고 요즘 회사들에서 많이 사용하는 기술이기 때문이다..!! 가장 먼저 한 것은 build.gradle.kts 세팅이다.프로젝트 단의 build.gradle.kts에서는 hilt..

Android/Kotlin 2024.06.17
반응형