분류 전체보기 108

Flutter - Open Source License 패키지

어떤 분야에서든지 개발을 해 보았다면 수 많은 오픈소스 라이브러리를 활용하고 있을 것이다. 오픈소스 라이브러리를 활용하는 것은 생산성을 높일 수 있을 뿐만 아니라, 개발 생태계에 있어 굉장히 좋은 문화라고 생각한다. 그러나 오픈소르 라이브러리를 활용하는데에 주의할 점이 있다. 바로 오픈소스 라이센스이다. 오픈소스 라이센스는 말 그대로 오픈소스에 대한 저작권 표시다. 오픈소스 라이브러리의 Github 저장소에서 Apache License 2.0이라던가, MIT License 같은 것을 본 적이 있을 것이다. 이것이 예인데, 각 라이센스 마다 수정 가능 여부, 상업적인 사용 가능 여부 등이 다르다. 라이센스에 대해 얘기하자면 끝이 없으니 여기선 넘어가겠다. 대부분의 오픈소스 라이브러리는 수정 및 상업적 이용..

개발/Flutter 2023.01.24

Android - Deep dive into LiveData - 2. setValue vs postValue

LiveData를 사용할 때, 데이터의 변경은 어떻게 할 수 있을까? 제목에도 나와있듯이, setValue와 postValue가 있다. 왜 두 가지 방법이 있을까? 무슨 차이가 있는지 알아보자. public abstract class LiveData { ... /** * Sets the value. If there are active observers, the value will be dispatched to them. * * This method must be called from the main thread. If you need set a value from a background * thread, you can use {@link #postValue(Object)} * * @param value ..

개발/Android 2023.01.21

Android - Deep dive into LiveData - 1. LiveData가 무엇인가요?

안드로이드 앱 개발에 가장 많이 활용되는 Jetpack Component를 꼽으라고 한다면 LiveData는 손에 꼽힐 것이다. 앱 규모가 커지고 복잡해지면서 상태관리가 중요해졌다. 그러다보니 자연스레 MVVM도 표준 아키텍처로 자리잡혔고, 이를 충분히 활용하기 위해 ViewModel과 LiveData가 사용된다. 이번 포스팅 주제로, 안드로이드 프레임워크에서 상태관리를 하기위해 안성맞춤인 LiveData에 대해 자세히 알아본다. LiveData? 공식 문서에서 소개하는 LiveData를 꼭 읽어보길 바란다. https://developer.android.com/topic/libraries/architecture/livedata?hl=ko LiveData 개요 | Android 개발자 | Android ..

개발/Android 2023.01.21

Android - LifecycleOwner vs ViewLifecycleOwner

Android 앱을 개발하면서 가장 기본적이고 중요한 것 중 하나는 앱의 생명주기라고 생각한다. 생명주기, Lifecycle은 Activity, Fragment, Service 와 같은 앱의 구성요소에 따라 다르다. 흐름은 어느정도 비슷하지만, 호출되는 함수가 다른 등의 차이가 있다. 현재 Android앱을 개발하면 Jetpack을 너무나도 당연히 사용하게 되고, LiveData와 ViewModel 또한 활용하고 있을 것이다. 그러다보면 자연스럽게 LifecycleOnwer, ViewLifecycleOwner에 대해 알게 된다. 그렇다면 이 둘의 차이는 무엇인지 정리해보자. LifecycleOwner가 뭐야? 먼저, LifecycleOwer에 대해 알아보자. https://developer.android..

개발/Android 2023.01.15

Flutter - 화려한 애니메이션이 앱을 감싸네! Lottie

모바일 앱을 더욱 아름답게 만들어주는 것이 애니메이션이다. 화면전환, UI가 보여지고 가려지고, 사이즈 변경 등 많은 부분에 애니메이션을 녹일 수 있다. 그렇지만 아이콘이나 이미지라던가, 화려한 애니메이션은 어려운 부분이 많다. 그래서 주로 Lottie를 사용하곤 한다. https://lottiefiles.com/what-is-lottie What is a Lottie animation? - LottieFiles Lottie is a JSON-based animation file format that works on any device and platform. LottieFiles lets you create, edit, test, collaborate on and ship a Lottie animati..

개발/Flutter 2023.01.15

Flutter - Firebase Firestore 연동 - 데이터베이스 접근과 읽기/쓰기

앱 개발을 할 때 Firebase는 뗄레야 뗄 수 없는 훌륭한 도구다. Firebase는 많은 도구가 있지만, Firestore는 그 중에서도 정말 유용하게 사용된다. 백엔드를 구축하기 어려운 상황에서 손쉽게 클라우스 데이터베이스를 사용할 수 있기 때문이다. 현재 진행중인 Flutter 프로젝트에서 Firestore 사용이 필요하기 때문에, 연동 과정을 정리한다. 먼저 터미널에서 아래 커맨드로 cloud_firestore 패키지를 추가한다. flutter pub add cloud_firestore 패키지 추가가 완료되었으므로, Firestore에 접근할 객체를 얻어야 한다. 놀랍게도 굉장히 간단하다. 아래 코드로 객체를 얻는다. db = FirebaseFirestore.instance; 이제 객체를 사용..

개발/Flutter 2023.01.14

[Android] Fragment Lifecycle - onCreateAnimation 은 무엇일까?

안드로이드 앱을 개발하다보면 Fragment를 자주 사용하게 된다. 특히, Jetpack Navigation Component를 사용한다면 Fragment 기반의 Single Activity Application으로 개발하게 될 것이다. 그러다보니 Fragment의 Lifecycle에 대한 이해가 중요해지게 되었다. Fragment는 Activity와 달리, Fragment가 Attach, Detach되는 함수와 뷰가 생성되고 파괴되는 함수가 Lifecycle에 존재한다. 그런데 여기서 잘 알려지지 않은 라이프 사이클 함수도 있다. 바로 onCreateAnimation이다. package androidx.fragment.app; public class Fragment { ... /** * Called w..

개발/Android 2023.01.14

Flutter Web - Chrome에서 개발하기

Flutter로 모바일 앱 개발을 할 때 정말 좋은 점은 바로 Hot reload 기능이 아닌가 싶다. UI를 변경했을 때 앱이 재실행되지 않고 바로바로 반영이 되어 개발속도가 확연히 다르다. 그러나, Flutter Web 에서는 Hot reload가 안되는 듯 하다. ㅠ_ㅠ 대신 Hot restart를 지원한다. Hot restart? Hot restart는 현재 앱의 상태를 유지하지 않고, 재시작해서 초기 화면으로 돌아간다. 즉, 어떤 화면을 작업중이라면 다시 들어가서 확인해야 되는 것. 그래도 build를 다시 하는 것 보단 나으니까.. 그럼 Hot restart는 어떻게 하는 것일까? 먼저, 자신의 프로젝트를 켜고 아래 커맨드를 입력하자. flutter run -d chrome 그럼 위와 같은 로..

개발/Flutter 2023.01.14

Flutter Web - Firebase Hosting에 배포해보자! 2. Flutter WebApp 배포

지난 포스팅에서 Firebase Hosting 배포를 위한 프로젝트와 CLI 설정을 마쳤다. 이를 기반으로 Flutter 프로젝트를 Firebase Hosting에 배포해보자. 1. Flutter 프로젝트 생성 본인이 사용하는 운영체제와 IDE를 사용해서 Flutter 프로젝트를 생성한다. 지금은 Firebase Hosting에 배포하는 것이 목적이므로 기본으로 생성되는 프로젝트로 충분하다. 적당히 프로젝트 이름과 설명을 작성한다. 플랫폼은 이 포스팅에선 Web만 선택해도 충분하다. 다른 플랫폼이 필요하면 추가하면 되기도 하고. 2. Flutter 프로젝트에 Firebase 설정 Flutter 프로젝트와 Firebase를 연동하기 위해선 간단한 설정이 필요하다. Firebase 프로젝트 콘솔로 이동하여 ..

개발/Flutter 2023.01.08

Flutter Web - Firebase Hosting에 배포해보자! 1. Firebase 설정

Flutter가 Web을 지원하기 시작한지도 꽤 되었다. 최근 여러모로 Web이 있으면 유용할 것 같아서 이것저것 알아보고 있었는데, 모바일 개발자로써 React 같은 웹 프레임워크를 배우는 것은 좀 그랬다. 언어부터 시작해서 익숙치 않다보니..? 하지만 Flutter라면 얘기가 다르지. Flutter 3.0이 배포된 이후로 회사에서도 관심도가 높아졌고, Google의 Fuchsia도 수면위에 올라오기도 하고, Flutter의 장점들 때문에 찾는 기업도 많아지고 있다. 그래서 기술적 트렌드를 따라가기 위해 나도 관심이 꽤 가고 있는 상태. 이 상태라면 Flutter도 익숙해질 겸, Web 개발 해보자! 가 된 상태. 아무튼 그래서, Flutter로 개발한 Web을 Firebase Hosting에 올려보기..

개발/Flutter 2023.01.08
반응형