Android
-
Jetpack Datastore 이해하기Android 2024. 5. 22. 22:41
안녕하세요. Mash-Up 14기 Android 팀으로 활동하고 있는 전계원입니다.Android 에는 앱 내 저장소에 정보를 key-value 기반으로 저장하기 위해 SharedPreferences 가 존재합니다.하지만 요즘은 SharedPreferences 대신 Datastore 을 많이 사용하고 있습니다. 그런데 여러분들은 SharedPreferences 대신 Datastore 를 사용하는 이유는 무엇인가요? Async API 제공? Type Safety? Runtime Exception 방지? 그럼 Datastore 는 어떻게 이러한 장점들을 누릴 수 있는 걸까요? Datastore 관련하여 이와 같은 궁금증이 생겼고, 이를 위해 Datastore 에 대해 공부했던 내용을 이번 포스팅을 ..
-
Fastlane으로 Android앱 자동 배포해보기 (feat. Firebase App Distribution)Android 2024. 4. 20. 01:03
안녕하세요! Mash-Up 안드로이드팀 멤버 백다연입니다.😀 우리는 출시할 버전을 열심히 개발하고 배포 전 QA과정을 거치기 위해 QA팀이나 디자인팀에게 앱을 배포하는 과정을 거치곤 합니다. 언제 다될지 모르는 빌드 시간을 한참~지켜보며 기다린 후에 메신저로 "배포되었습니다"라는 말을 전달해야 합니다. 이러한 과정을 자동화한다면 어떨까요?! 아마 빌드 시간을 기다리지 않고 다른 일에 집중할 수 있을 것 같습니다!! 앱 배포 자동화툴은 여러 종류가 있지만 FastLane이라는 오픈소스에 대해 알아보려고 합니다. Fastlane FastLane은 Android, iOS등 애플리케이션 배포를 자동으로 도와주는 오픈 소스이며, 명령어를 통해 쉽게 앱을 배포하고 Slack과 연동이 가능하여 앞서 설명한 과정들을 ..
-
MVVM과 MVI 디자인 패턴 차이점 알아보기Android 2023. 3. 23. 11:51
안녕하세요, 매시업 13기 안드로이드 기수로 활동 중인 지성빈입니다. 요즘 Jetpack Compose라는 선언형 UI 툴킷이 인기를 얻고 있고, Jetpack Compose는 Unidirectional Data Flow로 상태 관리가 권장되기에 이를 사용하는 디자인 패턴인 MVI를 공부하신 분을 주변에서 흔히 볼 수 있습니다. 이번 글에선 기존에 안드로이드에서 흔히 쓰이던 MVVM과 최근들어 뜨고 있는 MVI 디자인 패턴의 차이점을 알아보겠습니다. Unidirectional Data Flow UDA는 데이터가 애플리케이션의 한 방향으로만 흐르는 소프트웨어 아키텍처 패턴입니다. 데이터가 한 방향으로만 흐르기에 one-way binding라고도 합니다. UDA에서 데이터는 일반적으로 "저장소 (store)..
-
Android EventBusAndroid 2023. 3. 7. 00:07
Event Bus 안녕하세요 Mash-Up 안드로이드 10기 양민욱입니다 :) Activity, Fragment, 혹은 Service 간의 데이터 송수신. 여러분들은 어떤 방식을 사용하고 있으신가요? intent, bundle부터 Receiver, ViewModel까지 다양한 방법들이 머릿속에 떠오르실 거라 생각이 드는데요. 제가 오늘 소개해드릴 EventBus 라이브러리는 역시 Android 내에서 데이터를 공유하는 방법의 하나입니다. 저도 입사 전에는 전혀 모르고 있던 라이브러리인데요. 회사 내에서 여러 프로젝트를 개발할 때 EventBus 라이브러리 덕분에 쉽고 빠르게 개발을 완료할 수 있었던 좋은 기억들이 많아서 오늘 간단한 사용 방법과 현업에서 어떻게 사용하고 있는지 소개해보려고 합니다. Eve..
-
StateHolder에 관해Android 2023. 3. 7. 00:04
안녕하세요 여러분~ 안드로이드 12기 유희진입니다!! 반갑습니다.~ 여러분 요즘 컴포즈로 열심히 프로젝트중이시지않나요? 저도 마찬가지로 컴포즈로하구있는데 화면 그리는건 이제 얼추 감이 오는 것 같은데, 요즘에 state관리를 시작하면서 막 갑자기 막 헷갈리기 시작했어요. state를 어떻게 하면 잘 관리할 수 있을까.. 도데체 뭐가 맞는 방법인가.. remember만 주구장창 쓰면 되는것인가.. hoisting을하라했으니까 여까지 올리면 되겠지?… 머리가 지끈지끈~ 여러분도 같은 고민중이실거 알아요~ 물론 발표자분께서 State를 잘 알려주시긴했지만! 그때는 우리의 실력이 미비하여 기초만 알려주셨으니, 저는 조금 더 나아가서 복잡한 state에 사용될 수 있는 걸 말씀드릴려구 합니다. StateHolde..
-
Kotlin Delegation 분석Kotlin 2023. 3. 6. 22:12
다른 언어들에 비해 코틀린이 제공해주는 독특한 기능이 있는데요. 바로 델리게이션입니다. 델리게이션을 지칭하는 위임 패턴은 이미 전통적인 디자인 패턴 중 하나이지만, 코틀린은 이러한 위임 패턴을 아주 간단히 구현할 수 있게 만들어, 언어 차원에서 위임 패턴 사용을 적극 권장하고 있습니다. 안드로이드 개발에서도 by lazy, by remember 등의 위임 패턴을 이미 많이 사용하는데요. 오늘은 코틀린 델리게이션에 대해 간단히 알아보는 시간을 가져볼까 합니다. 상속과 위임이란 무엇일까? 코드의 재사용성은 프로젝트가 커질 수록 매우 중요해집니다. 재사용성을 늘리는 기법은 아주 많은데요, 그 중 상속과 위임 패턴도 아주 대표적인 재사용성을 늘리는 기법입니다. 객체지향 개발 방식에서는 상속을 자주 사용하게 되는..
-
Android AdMob Native AdAndroid 2023. 3. 6. 21:07
안녕하세요 MashUp 11기 양민욱입니다 :) 좋은 앱 서비스를 완성했다면 그다음 고민은 수익 모델이죠. AWS 등 클라우드 서비스를 통해 서버를 구축했다면 다달이 나오는 서버 비용을 무시할 수 없기 때문이에요… 그렇기 때문에 우리 Android 개발자들은 Admob 광고 SDK를 앱에 잘 녹여들 수 있게 고민을 시작해야 합니다. 최근 Admob 네이티브 광고를 개인 프로젝트에 적용하느라 아주 고생을 많이 했습니다. 라이브러리 자체를 적용하는 것은 어렵지 않았지만 우리 프로젝트 앱들은 모든 코드가 Activity class 하나 파일에 들어가 있는 형태는 아니잖아요? 여러 가지 다양하고 복잡한 구조로 구성되어 있는 데, 공식 문서에서 소개해준 코드는 간단하게 적용한 방법뿐이고 커스텀하게 이용할 수 있는..
-
Clean Architecture - Use case in AndroidAndroid 2023. 3. 6. 20:49
안녕하세요:) 안드로이드 팀 10기 유희진입니다. (꾸벅) 이번 뀨니뀨니와 아이들 안드로이드 팀에서 들어만 보았던 Clean Architecture를 적용해보았습니다. 적용하면서, 아예 처음 들어보았던 레이어가 있었는데요, 바로 UseCase 입니다. 네 녀석 누구더냐!!? 진호님께서 유즈케이스레이어에 대해서 설명해주실 때 제가 한 대답이 아직도 생각나네요. “(띠용) 그.. 소프트웨어공학에 UML에 나오는 유즈케이스 말하는건가요..?” 하지만 결국 그 유즈케이스가 이 유즈케이스가 맞더라구요!?!? Use case란? In general Use case란 만들고 있는 서비스를 사용하는 유저가 이 서비스(또는 시스템)을 통해 하고자 하는 것을 말한다고 합니다. 예를 들어, ‘음식점’이라는 서비스가 있다고 ..