Today's

길을 나서지 않으면 그 길에서 만날 수 있는 사람을 만날 수 없다

반응형

모바일 앱(안드로이드) 245

안드로이드 앱 만들기 : Sqlite 로 구현해 보는 Paging (feat Jetpack compose, 대량 데이터 조회)

오늘 적어 두고자 하는 주제는 Paging입니다. 웹 개발을 하는 경우에는 각종 framework 등을 이용해서 데이터 조회 시 UI의 부하를 줄이기 위해서 Paging을 할 수 있도록 지원을 받습니다. xml layout 을 구현할 때는 ListView 와 Adapter을 이용해서 별로 고민을 하지 않았던 부분이기도 합니다. 아니면 많은 데이터가 적재될 때까지 사용을 해 보지 않아서 지금 이 순간에는 느려진 화면 때문에 버려진 앱을 개발했던 것일 수도 있기도 하고요. Paging 이란 페이징 기법(paging)은 컴퓨터가 메인 메모리에서 사용하기 위해 2차 기억 장치[a]로부터 데이터를 저장하고 검색하는 메모리 관리 기법이다.기법이다. [1] 즉 가상기억장치를 모두 같은 크기의 블록으로 편성하여 운용하..

안드로이드 앱 만들기: xml layout 에서 jetpack compose 로 이전

이제 끝나 갑니다. 앱도 게시를 하였고 정리된 글은 조만간 정리해 보겠습니다. 일단 화면만 보여 드려요. 이전 화면은 이렇게 그렸지만... 이전한 화면은 이렇게 그립니다. 더 깔끔한 화면으로 변했습니다. 재활용성은 훨씬 뛰어납니다. xml layout 을 버리는 일은 그렇게 쉬운 작업은 아니었습니다. linear layout부터 listview까지 다양하게 만들어져 있는 화면들을 jetpack compose 화면으로 옮기는 것도 그렇게 기존에 사용했던 function을 재정의 해서 사용하는 것도... 다만 이렇게 이전을 하는 이유는 훗날 더 손쉽게 앱을 관리할 수 있기 때문이기도 합니다. 디자인을 전공 하지 못한 순수(?) 개발자가 다양한 모양의 앱을 구현하는 것은 조금 난감하게 다가오기도 합니다만.....

안드로이드 앱 만들기 : jetpack compose URL 에서 image 받아와서 보여 주기 (feat coil)

오늘은 앱을 만들면서 이미지를 보여 주어야 하는 경우 중에 URL에서 이미지를 가져와 보는 것에 대해서 기술해 보겠습니다. URL에서 image를 가져온다는 것은 서버에 저장된 image 일수도 있고, SNS profile의 image 정보일수도 있을 것입니다. 구글에서 찾아보면 다른 것들도 많이 있기는 합니다. 그 중에서 coil 라이브러리를 이용해서 한번 만들어 보도록 하겠습니다. gradle 설정 그래들 설정은 아래 한 줄입니다. 현재 시점에서 최신 버전인 것으로 보입니다. 이 글을 보시는 시점에 최신 버전이 아니라면 아마도 android studio는 추천을 해 줍니다. // image load from url implementation("io.coil-kt:coil-compose:2.2.2") ..

안드로이드 앱 만들기 : jetpack compose IconButton 만들기에서 쉽게 하는 실수 (?)

xml layout 에서 jetpack compose로 이전을 하는 과정에서 범하는 실수 중에 한 가지를 기술해 두고자 합니다. 위 그림과 같이 카카오 X으로 로그인하는 페이지를 jetpack compose로 만들어 간다고 했을 때 이렇게 구현을 하게 될 듯합니다. TextButton(onClick = { doKakaoLogin() }) { Image( painter = painterResource(id = R.drawable.kakao_login_medium_wide), contentDescription = "", modifier = Modifier .width(300.dp) .height(45.dp) ) } 카카오에서 지원해 주는 로그인 연동 버튼이미지를 넣어서 이미지 버튼을 하나 만들어 보려고 했습..

안드로이드 앱 만들기 : java 에서 kotlin 으로 이전 SharedPreferences 는 어떻게 ?

이전 글에서 정리할 것처럼 java에서 kotlin으로 이전을 했습니다. 그러고 나서 보기 시작했는 데, DefaultSharedPrefernces의 사용할 수 없는 환경으로 변경이 된 것을 알게 되었습니다. 이전 prefs = PreferenceManager.getDefaultSharedPreferences(this) 이후 prefs = getSharedPreferences(packageName + "_preferences", MODE_PRIVATE) 기본 preferences 의 이름은 패키지 이름 뒤에 접미사가 달라붙어 있었습니다. 이렇게 해서 또 하나 해소가 되었습니다.

안드로이드 앱 만들기 : java 프로젝트에서 kotlin 으로 넘어가 보기

이 글은 기존에 사용하던 java 프로젝트를 kotlin으로 전환해 보기 위해서 작성하고 있습니다. 이 글은 아래 링크의 개발자 페이지의 내용을 참고하고 있습니다. https://developer.android.com/kotlin/add-kotlin?hl=ko#kts 기존 앱에 Kotlin 추가 | Android Developers 기존 앱에 Kotlin 추가 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Android 스튜디오에서는 Kotlin을 완벽하게 지원하므로 기존 프로젝트에 Kotlin 파일을 추가 developer.android.com 먼저 gradle 파일부터 수정해 보겠습니다. buildscript { ext { // 추가한 부분 compose_ui_vers..

안드로이드 앱 만들기 : MediaStore API 활용해 보기 (feat 휴대폰 사진 백업)

휴대폰에 있는 사진 (이미지)을 백업해 보아야겠다는 요청을 받았습니다. 하지만, 그때는 방법을 잘 모르겠더군요. 그래서 일단 찾아본다고 했는 데, 그 이후에는 더 이상의 요구를 하지 않았습니다. 그래서 이왕 찾아보았던 정보를 이용해서 앱을 하나 만들어 보기로 했습니다. https://medium.com/@sendtosaeed2/android-fetch-all-files-from-local-storage-media-store-api-e9b9 14cd71e1 Android Fetch All Files From Local Storage (Media Store API) 🥲Hi android devs! Hope you are all fine but not fine with the media store api, c..

안드로이드 앱 만들기 : 인앱 업데이트 appUpdateManager deprecated 해결해 보기

앱을 만들어 배포를 하다 보면 사용자가 업데이트를 놓치는 경우가 있을까 싶어서 앱을 실행할 때 자동으로 업데이트를 할 수 있도록 코드 구현을 하고 있습니다. 물론 잠자는 시간에 충전을 하고 있다면 playstore 앱이 잘 알아서 업데이트를 해 주기도 합니다만, 그래도... 코드를 구현해 사용하다 보니 어느날 deprecated 되어 다는 이야기가 나옵니다. 안드로이드 버전이 올라가면서 나오는 현상이기는 하겠습니다만, 개발자 페이지를 찾아보겠습니다. https://developer.android.com/reference/com/google/android/play/core/appupdate/AppUpdateManager AppUpdateManager | Android Developers Stay organ..

안드로이드 앱 만들기 : FTP Clietn 만들어 보기, 백업 앱 만들기

앱을 구현하는 동안 FTP 접속을 통해서 파일을 서버로 전송하는 앱을 구현해 보기로 하겠습니다. 먼저 gradle 파일에 아래 항목을 추가합니다. FTP 서버를 활용하기 위해서는 필요합니다. implementation 'commons-net:commons-net:3.9.0' 코드 구현에 필요한 코드는 아래와 같습니다. 이 명령줄을 이용해서 접속할 서버 정보를 이용해 파일을 보내 보는 것입니다. import org.apache.commons.net.ftp.FTP import org.apache.commons.net.ftp.FTPClient import java.io.File import java.io.FileInputStream fun uploadFileToFtp(file: File, ftpServer: ..

안드로이드 앱 만들기 : navigator backStack 지우기

오늘은 앱의 하단 탐색바를 만들다 고민이 생긴 걸 해소하는 이야기를 적어 봅니다. https://medium.com/@banmarkovic/jetpack-compose-clear-back-stack-popbackstack-inclusive-explain ed-14ee73a29df5 Jetpack Compose clear back stack, popBackStack inclusive explained Understand the popUpTo and inclusive parameter for navigation-compose lib, and learn how to clear back stack. medium.com 이 이야기의 출처는 위에 링크를 참조해 주세요. 이야기의 중요 논점은 내비게이션 바를 이용해서..

반응형