안드로이드 앱개발 9

[SimpleChatApp] LiveData를 ViewModel없이 구현

LiveData 오늘은 LiveData에 대해서 공부해봤다. 일단, LiveData의 필요성을 느끼게 된 것은 DB가 읽어들인 user의 정보를 띄우지 못해서 였다. 처음에 이걸 보고 조금 당황스러웠지만 받아온 정보를 출력해봤을 때 변수로는 받아오는데 UI에서 update가 되지 않아서 발생하는 문제였다. 내가 앱 개발이 아예 처음이었으면 몰랐겠지만 그래도 flutter를 1년간 열심히 개발했던 경험이 있어서 뭐가 문제인지 파악할 수 있었다. 그래서 flutter에서 사용되는 getx같은 라이브러리가 android에도 있는지 살펴봤다. 후보는 RxJava와 LiveData였다. 일단, RxJava는 난이도가 상당하다는 후기가 있었다. 그리고나서 LiveData를 봤는데 MVVM을 구현하기 위해서 내가 공..

[SimpleChatApp] 5, 6일차

MVVM 난 flutter로 개발할 때에도 firebase를 썼기 때문에 이번에도 firebase를 통해서 개발을 시작하려고 한다. 먼저, firebase를 적용하기 앞서서 제대로 된 개발을 하려면 design pattern에도 신경을 써야 할 것 같아서 MVVM을 쓸려고 했다. 그런데 MVVM을 시도하기에는 여러 장벽이 있었다. 먼저 제대로 된 정의가 없었다. https://deque.tistory.com/108 Android Kotlin MVVM패턴으로 간단한 검색 앱 만들기 - 1. BaseView, BaseViewModel을 작성하여 MVVM의 토대 만 MVVM 패턴과 Kotlin으로 간단한 앱을 만드는 것에 대해 글을 써보려고 합니다. 저도 정리를 좀 하고, 다른 분들도 도움이 좀 되셨으면 하는..

[SimpleChatApp] Google Sign In

원래는 몇 일차로 했는데 오늘은 google sign in에 대해서 다루어 보려고 하기 때문에 제목을 google sign in으로 했다. 사실 어제부터 firebase를 시작했는데 생각해보니까 제대로 firebase로 데이터를 다룰려고 하면 로그인부터 해야 할 것 같아서 먼저 제일 기본적이고 중요한 google sign in을 구현하려고 했다. 선택지 크게 세 가지 선택지가 있었다. - 기본적인 google Sign In - One Tap Sign-in - Firebase Auth 사용하기 일단, 세 가지 다 시도는 해봤다. 제일 먼저 One Tap Sign-in이 제일 멋있을 거 같아서 해봤는데 예제 코드가 너무 불친절했다. 그리고 One Tap Sign-in은 login 화면을 따로 구현하지 않고 ..

[SimpleChatApp] 3일차

Fragment에서 findViewById() 처음에 그냥 findViewById를 할려고 했는데 fragment에서는 그냥 findViewById를 할 수 없었다. 그래서 아래와 같이 inflater.inflate()로 얻어진 ViewGroup을 통해서 findViewById를 해야 한다. @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ViewGroup rootView = (ViewGroup)inflater.inflate(R.layout.fragment_main_menu_friend, container, false); RecyclerView friendL..

[SimpleChatApp] 2일차

사실 오늘은 다른 sample code를 참고하면서 앱개발을 해보려고 했는데 마땅한 게 없어서 마저 하던 개발을 했다. ActionBar 제거하는 법 난 일단, 카톡에서 그러하듯이 bottom navigation view를 통해서 들어가는 fragment마다 다른 appbar가 보여지기를 원했는데 안드로이드에서는 기본적으로 공통된 ActionBar를 사용하고 있어서 먼저 ActionBar를 off해야 했다. 방법은 세 가지가 있다. 두 가지는 여기에 소개된 방법이고, https://lakue.tistory.com/48 [Android/안드로이드] 타이틀바(액션바) 제거 앱을 만들다보면 상단에 타이틀바(액변바)를 없애고 싶은 경우가 많습니다. 액션바를 업애기 위해서는 java코드로 없애는 방법과 style..

[SimpleChatApp] 1일차

.gitIgnore 먼저 Git에 commit하면서 개발을 진행하려고 하기에 gitIgnore도 관리해야 한다. Flutter로 version control을 할 때에도 쓸 떼 없는 local file들이 공유되어서 굉장히 귀찮았던 경험이 있다. 그래서 이번에는 처음 commit을 하기 전에 recommend되는 gitignore를 찾아서 붙여넣었다. 자세한 내용은 아래서 확인하면 된다. https://stackoverflow.com/questions/25693964/first-commit-android-studio-project-what-should-leave-out First commit Android Studio Project -- What should leave out? I am doing my ..

[SimpleChatApp] 0일차

기획의도 Udemy에서 Android app 개발을 배우기 시작한지 1~2주 정도 된 것 같다. 근데 거기서는 굉장히 기본적인 개념만 배울 수 있어서 내가 직접 토이프로젝트를 시작해야 겠다는 생각이 들었다. MVP 토이 프로젝트로 구현할 것이기 때문에 최소한의 기능을 염두에 두고 개발을 해보려고 한다. - 실시간 채팅을 보낼 수 있는 기능(DB연결) - 친구 추가 기능 - 프로필 설정 기능 - Bottom Navigation Bar 디자인 디자인은 카톡 디자인 기본으로 하려고 한다. 기술 스택 먼저, java를 사용해서 개발을 진행하려고 한다. kotlin 강의도 있는데 아직 java로 android 개발하는 게 덜 익숙해서 천천히 해보려고 한다. - Java - Firebase - Git 이 정도를 기..

Kotlin 1일차

Android Kotlin Basics in Kotlin | Android Basics in Kotlin - Intro | Android Developers Build your first Android apps with the Kotlin programming language. developer.android.com 출력은 println으로 하되 print를 쓰면 \n없이 val로 변수 생성하면 변경 불가. 보통은 var로 for 대신에 repeat로 반복 가능 함수는 이런 식으로 사용 fun printBorder(border: String, timesToRepeat: Int) { repeat(timesToRepeat) { print(border) } println() } parameter는 이런 식으로..

Kotlin 도전기

아직 진로를 결정하지 못한 컴공 4학년. 이제는 진짜 취업을 준비해야 겠다 싶다는 생각이 들었다. 다른 분야도 좋지만 차라리 계속해서 해왔던 앱개발을 연이어서 하는 것이 마음이 편할 것 같아 차근차근 준비를 해보고자 한다. https://developer.android.com/kotlin/androidbasics?hl=En Kotlin의 Android 기본 사항 | Android 개발자 | Android Developers Kotlin의 Android 기본 사항 프로그래밍 경험이 없는 사람은 이 과정에서 간단한 Android 앱을 빌드하는 방법을 배울 수 있습니다. 이 과정에서 프로그래밍의 기초와 Kotlin 프로그래밍 언어의 기본 사 developer.android.com 아직 앱 빌드도 한번도 안해봤..