일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- compose
- Java
- targetsdk
- 초보개발자
- 개발시작
- WorkManager
- SharedPreference
- Developer
- coroutines
- SwiftUI
- 코루틴
- 앱심사대응
- Android
- Android Studio
- 문제해결
- chatGPT
- Google Play
- 개발자도전기
- 상태관리
- 앱개발
- 문제개선
- Jitpack
- Swift
- EncryptedSharedPreferences
- ios
- 앱심사경험
- 클래스 설계
- 안드로이드
- Kotlin
- foregroundservice
- Today
- Total
목록Dev Lab ✧.·˚ (19)
개발린생
비교를 위해 UI 정의와 함수 구조를 유사하게 구현했으며,두 플랫폼 모두 GreetingView에서 이름을 인자로 받아, 그 값을 MainScreen 화면에 텍스트로 표시하는 예제를 작성해봤다.Android Compose의 @Composable 함수와 SwiftUI의 View 구조체가 각각 비슷한 역할을 수행한다.Android Compose의 Composable 함수@Composable 어노테이션을 사용해 함수로 UI를 정의한다.각 UI 컴포넌트는 재사용 가능한 함수로 만들 수 있으며, 컴포저블 함수는 컴포지션에 참여해 UI 트리를 형성한다.예시 코드:@Composablefun MainScreen() { // MainScreen에서 GreetingView 컴포저블을 호출하고 문자열을 전달 Gr..
💬 Android XML 기반 개발도 충분한데 Android Compose를 배워야할까?안드로이드 개발자로써, 나는 오랫동안 XML 기반으로 UI를 구현해왔고, 컴포즈에 대한 언급이 많아졌을 때도 굳이 새롭게 배워야 할 이유가 있을까? 의문이 들었다. XML로도 충분히 잘 개발할 수 있었고, 새로운 것을 도입하는 게 실제로 얼마나 큰 이점이 있을지 의문이었다. 솔직히 말하면, 기존 방식에 익숙하고 불편함도 없었기 때문에 귀찮음이 앞섰다..^^XML로 이미 원하는 결과를 쉽게 얻을 수 있었으니, 굳이 컴포즈를 배울 필요를 느끼지 못했다. 나처럼 이미 안드로이드 개발 경험이 있는 사람에게는 XML은 기본적으로 사용 가능한 옵션이기 때문에, 처음 안드로이드를 배우는 개발자에게는 컴포즈가 최신 기술이니 XML..
안드로이드 개발을 예전부터 해왔던 분이라면 언제적 AsyncTask냐 싶을 것이다.AsyncTask는 예전에 비동기 작업을 처리하기 위해 흔히 사용되던 클래스지만 현재로써는 RxJava와 Coroutines가 대표적으로 사용된다.AsyncTask > RxJava > Coroutines 이 외에도 중간중가 여러가지가 있긴 하다. 현재 AsyncTask는 디플리케이트 되었고 Coroutines이 많이 사용되고 있다.(가끔 유지보수건 프로젝트를 보면 AsyncTask를 많이 마주치긴 함) 💬 AsyncTask를 사용할 때를 주절거려보자면 과거 Android Java로 앱을 개발하던 시절, 화면을 띄운 상태에서 네트워크 통신이나 파일 처리 등 무거운 작업을 하면 UI가 멈추는 문제가 있었다. 이것을 해결하기 ..
Android와 iOS는 서로 다른 운영체제를 기반으로 하지만, 개발 과정에서 공통적으로 적용되는 개념과 구조가 많은 것 같다.둘을 동시에 공부할 것이기 때문에 Android와 iOS 개발에서 공통적으로 사용할 수 있는 필수 개념들을 ChatGPT를 통해 정리해봤다. 한번에 많은 지식을 습득하기는 어려우니 키워드를 하나하나씩 파헤칠 예정..ChatGPT, Android와 iOS 개발의 공통적인 부분이 있을까? 1. 아키텍처 패턴 (MVC, MVVM 등) Android와 iOS 모두 MVC(Model-View-Controller), MVVM(Model-View-ViewModel) 같은 아키텍처 패턴을 따른다.이를 통해 비즈니스 로직과 UI를 분리하여 유지보수성을 높이고, 코드의 구조를 깔끔하게 유지할 수 ..
회사의 어려운 상황이 큰 계기가 되어 해야지, 해야지 했던 iOS 개발 공부를 시작했다.Android나 iOS나 공부하려고 사둔 서적들을 제쳐두고 ChatGPT와 함께 공부 시작! iOS 개발 시작하며, Android 개발을 동시에 공부하려고 한다.회사에서 업무를 하다 보면 기능 구현에 급급해져서 제대로 이해하지 않고 넘어가는 경우가 많다.이런 상황이 반복되면, 같은 기능을 다시 구현할 때에도 복사-붙여넣기로 해결하려 하거나, 오류가 생기면 그때그때 검색하면서 문제를 해결하게 된다.이로 인해 코드 퀄리티가 떨어지고, 면접에서도 해당 기능을 설명하기 어려울 뿐만 아니라, 내가 직접 구현했지만 내 실력으로 체화되지 않은 느낌이 들어서 매우 찝찝하다. (자신감도 떨어짐 이런 부분을 개선하기 위해서 이해를 바탕..
학교 과제로 DBMS를 사용하여 DB 및 테이블을 생성해보고 쿼리를 작성해보는 과제가 주어졌다.SQL Server DBMS를 사용하여 실습해보는거지만 원한다면 다른 DBMS를 사용해도 된다고해서 맥북을 사용하는 나는 MySQL로 실습을 하고자했다. SQL Server는 Windows에서 실행할 수 있고 macOS에서 직접 실행되지 않지만 Docker를 사용하여 가상화된 환경에서 실행해볼 수 있지만, 꼭 SQL Server를 사용하라는 조건이 없기 때문에 MySQL로 실습해보기로 결정 /(^ 9^)/ *Docker는 애플리케이션을 컨테이너라고 불리는 독립적인 환경에서 실행할 수 있게 해주는 오픈 소스 가상화 플랫폼이다. MySQL 설치 (macOS 환경)MySQL을 설치하기 위해서는 MySQL 공식 웹사..
* 이 포스트에 작성된 코드는 Kotlin 언어로 작성하였습니다. 안드로이드 앱에 기능을 구현할 때, 데이터나 기능의 사용을 위해 설정 파일에 권한을 명세합니다. 이 권한 중에는 일반 권한과 위험 권한이 있으며 보호 수준에 따라 권한을 명세하고 요청하는 방법을 알아보겠습니다. 일반 권한 일반 권한은 사용자에게 권한 승인 여부를 묻지 않습니다. 흔한 예시로는 네트워크 통신을 기반의 앱이라면 필수로 명세하는 INTERNET 권한이 있습니다. 앱에서 네트워크 및 인터넷 사용을 위해 명세하는 권한이며 적용 위치와 코드는 아래와 같습니다. AndroidManifest.xml 명세 위치 ... 권한 명세 위험 권한 (런타임 권한) 위험 권한은 사용자에게 권한 승인 요청 후 권한이 주어집니다. 앱에서 카메라를 사용하..
* 이 포스트에 작성된 코드는 Kotlin 언어로 작성하였습니다. 앱 내 간단한 데이터를 다루기 위해서는 주로 SharedPreference를 사용하고 조금 더 복잡한 데이터를 다루기 위해 SQLite Database를 사용합니다. 이번에는 SQLite를 직접적으로 다루는 방식이 아닌 SQLite를 활용하는 Room 라이브러리 사용해보고자합니다. Android Jetpack의 구성요소 Room Room은 Jetpack의 구성요소 이며, Jetpack은 개발자가 중요한 코드에 집중할 수 있도록 권장사항 준수, 상용구 코드 감소, 여러 Android 버전과 기기에서 일관되게 작동하는 코드 작성을 돕는 라이브러리 묶음입니다. 우리는 상당한 양의 구조화된 데이터를 처리하는 앱은 데이터를 로컬에 유지하여 매우 큰..
* 이 포스트에 작성된 코드는 Kotlin 언어로 작성하였습니다. 카테고리의 첫 포스트는! 많은 분들이 저와 같이 사용하셨을 것이라 생각하여 공유하고자 작성하는 글 입니다. 우리는 앱에 데이터를 저장하기 위해 앱 DB인 SQLite도 사용하지만 앱 안에 간단한 데이터를 간단하고 편리하게 저장하고 사용하기 위해 주로 SharedPreferences를 사용합니다. 어떤 기능에 대한 설정 값을 저장하기도 하고 아이디, 비밀번호, 이메일, 전화번호 등 사용자 데이터를 저장하기도 합니다. 설정 값 같은 데이터는 노출이 되어도 무관할 수 있으나 아이디, 비밀번호 등 사용자의 민감한 데이터는 노출이 되면 문제가 될 수 있기에 SharedPreferences를 암호화하여 사용해보도록 하겠습니다!! 암호화 하지 않은 S..