[Flutter] Flutter의 미래 전망: 구글이 이끄는 크로스 플랫폼 앱 개발 혁신
2023. 6. 1. 10:00
[# 2]…My DevelopStory
크로스 플랫폼 앱 개발 분야에서 선두주자인 Flutter는 구글의 지원 덕분에 기존 모바일 개발 프로세스의 혁신을 이끌고 있습니다. 많은 개발자들이 이 기술을 사용하여 높은 품질의 애플리케이션을 만들고, 플랫폼 간 호환성을일 수 있게 되었습니다. 이러한 기술 혁신의 중심에서 구글은 앞으로 어떻게 Flutter의 미래를 이끌어 나갈 것인지 궁금해졌습니다. 그래서 이 포스트에서는 Flutter의 미래 전망을 알아보고자 합니다. 플랫폼 간 호환성 강화 구글은 Flutter를 지속적으로 개선하여 iOS, Android, 웹의 플랫폼 간 호환성을 더욱 강화할 것입니다. 이를 통해 개발자들은 동일한 코드 베이스를 사용하여 다양한 플랫폼에서의 애플리케이션 개발을 효율적으로 진행할 수 있게 됩니다. 이로인해 뛰어난 사..
[Android] Could not resolve all files for configuration ':app:debugCompileClasspath'. - Build Error
2023. 5. 30. 00:46
[# 2]…My DevelopStory
조금 업데이트가 몇년동안 안된 라이브러리를 적용하면서 나온 에러로 이 또한 간단하게 해결 할 수 있다. repositories { jcenter() } 이제 지원이 끝난 Deprecated된 Jcenter()을 추가해준다. 이래도 될 수 있지만 혹시 다른 에러가 또 발생한다면 그 또한 아마도 아래와 같이 간단하게 해결할 수 있을 것이다. android.enableJetifier=true gradle.properties(Project Properties) 에 "android.enableJetifier = true"을 추가하면 해결이 될 것이다.
[Android] open failed: EACCES (permission denied)
2023. 5. 27. 00:58
[# 2]…My DevelopStory
갤러리 이미지 관련하여 개발 중 open failed: EACCES (permission denied) 와 같은 에러를 만났는데, 글라이드에서 갤러리의 이미지 path를 제대로 넣어서 했는데도 계속 제대로 안나오길래 Glide의 RequestListener을 통해 확인을 해본 결과 open failed: EACCES (permission denied) 요놈이 문제였다. 난 분명히 퍼미션 추가도 제대로 하였고 체크도 제대 했는데 왜 나오지 했는데, 문제는 아주 간단하였다. AndroidManifest(메니페스트)의 application에 android:requestLegacyExternalStorage="true" 요것만 추가하면 해결이 된다.
[Android] Duplicate class kotlin.collections.jdk8.CollectionsJDK8Kt found in modules kotlin-stdlib-1.8.10 and kotlin-stdlib-jdk8-1.7.20
2023. 5. 24. 15:59
[# 2]…My DevelopStory
사이드 프로젝트에서 Hilt를 적용하다가 나온 에러고 한참을 고생했는데 이를 기록하고 혹시 도움이 될까 남겨 봅니다. classpath "com.google.dagger:hilt-android-gradle-plugin:2.45" id 'com.google.dagger.hilt.android' version '2.45' apply false // hilt implementation "com.google.dagger:hilt-android:$hiltVersion" kapt "com.google.dagger:hilt-android-compiler:$hiltVersion" hilt관련 버전 통일 그리고 implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8...
[Android] Hilt + Room + Flow 적용하기
2023. 5. 24. 15:53
[# 2]…My DevelopStory
이번에 사이드 프로젝트를 진행 하면서 HIlt를 한번 써볼 생각으로 적용하고 있는데, 이게 너무 복잡하고.. 빌드에러도 많이 났고.. 사실 아직까지도 어떻게 동작을 하는 것인지 모르겠네요.. Hilt는 안드로이드 앱에서 의존성 주입(Dependency Injection)을 쉽게 구현할 수 있도록 도와주는 라이브러리입니다. 의존성 주입은 객체 간의 의존성을 더 이상 하드 코딩하지 않고 외부에서 주입하는 방식으로 구현합니다. 이를 통해 코드의 유지보수성을 높이고, 테스트 용이성을 개선할 수 있습니다. 사실 적용하다가 실패하면 그냥 직접 생성해서 쓰고 말지! 라는 생각이 문득문득 듭니다.. Hilt는 Dagger2를 기반으로 만들어졌으며, Dagger2보다 더 쉽게 사용할 수 있도록 만들어졌습니다. Hilt는..
왜 안드로이드 개발자라면 플러터를 배워야 할까요?
2023. 5. 19. 22:52
[# 2]…My DevelopStory
크로스 플랫폼으로 기존에 페이스북 지금의 메타의 리액티브 네이티브가 있었지만, 구글의 플러터가 발표된 이후, 현재 크로스플랫폼 중 가장 선호하는 것은 플러터라고 하는 많은 자료가 있습니다. 하지만 기존의 안드로이드 개발자로써 플러터의 개발방식은 기존의 네이티브 방식과는 많이 달라서 배우는데 러닝커브가 있어 망설여지는데요. 그럼에도 불구하고 크로스플랫폼이라는 장점과 웹개발까지 할 수 있다는 큰 장점에 꼭 배우고 싶은 프레임워크이기도 합니다! 그래서 이번에는 플러터에 대한 포스팅을 해보려고 합니다! 왜 안드로이드 개발자라면 플러터를 배워야 할까요? 안드로이드 개발자라면 플러터를 배워야 하는 이유는 매우 다양합니다. 그 중 가장 큰 이유는 안드로이드 개발자라면 이미 자바나 코틀린과 같은 네이티브 언어를 알고 ..
안드로이드 뷰모델, 솔직히 이것만 알면 된다 ~ Android Viewmodel
2023. 1. 10. 01:45
[# 2]…My DevelopStory
너무 유명하지만 어려운 뷰모델(Viewmodel) 안드로이드 개발을 하면서 분명히 알고 있어야 하는 MVVP패턴의 뷰모델(ViewModel) 하지만 이론은 너무 어렵고 면접에서 질문이 들어온다면 이를 설명하기는 또 어렵다. 그래서 개인적으로 이정도만 알고 있으면 되지 않을까 싶어서 기록을 해본다. 그래도 사용법정도는 알고 있어야 한다 다른 생명주기를 가지고 있다 Activity나 Fragment는 각각의 생명주기를 가지고 있고, 심지어 프레그먼트는 더 세분화된 생명주기를 가지고 있다. 하지만 뷰모델은 이 생명주기와는 다르게 더 간단하면서 더 오래 살아남고 있다. 그래서 이와는 다른 생명주기를 가지고 있다. 뷰가 완전히 죽은 시점(onDestory)에서 뷰모델도 onClear가 호출되기 때문에 생명주기가 ..
다트언어 인터페이스 사용하기 ~ Dart Interface Implements
2022. 12. 22. 02:49
[# 2]…My DevelopStory
다트에서도 물론 인터페이스가 존재하며 자바와 마찬가지로 클래스 옆에 implements를 붙여서 사용합니다. 다트에서 인터페이스 사용하기 자바든 코틀린이든 인터페이스는 생각보다 중요하며 이 또한 재사용성 및 유지보수 시에 좋습니다. 먼저 인터페이스 클래스를 만들어 줍니다. abstract class Sample { String name; Sample(this.name); void sayName() {} void sample() { print('test'); } } 인터페이스 클래스는 제대로 완성되지 않은 클래스라고 봐도 됩니다. 인터페이스를 통해 클래스를 완성하는 거니깐요 추상 클래스는 class 옆에 abstract를 붙여서 만들어 줍니다. 이렇게 함으로써 바로 인터페이스 클래스를 호출하거나 생성할 수..
플러터 다트언어 상속 적용하기 ~ Flutter Dart Extends
2022. 12. 22. 02:11
[# 2]…My DevelopStory
플러터를 사용하기 위해서는 다트라는 언어를 익혀야 하는데, 이 문법은 자바와 아주 유사하여 자바를 알고 있다면 더 배우기 쉽습니다. 그런데 오히려 코틀린을 사용하고 더 익숙한 사용자라면 다트랑 비슷비슷해서 조금씩 틀린고 갑자기 헷갈릴 수 있는데 그럴 수 있습니다. 저도 지금도 그러고 있고요 특히 마지막에 자꾸 ";"를 까먹어서 에러가 나네요 아무튼 상속도 자바와 아주 유사 아니 똑같아서 자바를 알고 있다면 한번 보는 것으로도 충분히 이해할 수 있을 거라 생각이 듭니다. 다트에서의 상속 하기 자바와 마찬가지로 클래스를 생성할 때 클래스 이름 옆에 extends를 붙여서 상속을 받습니다. 일단 상속을 받기 전에 부모 클래스를 먼저 만들어야 합니다. 이 또한 자바와 같습니다 class Sample{ Strin..
안드로이드 FCM(Firebase Cloud Messaging) 이해하기
2022. 12. 10. 01:28
[# 2]…My DevelopStory
FCM이란? FCM이란 구글 파이어 베이스에서 제공하는 push 서비스로 간단하게 push 구현을 지원해 줍니다. 많은 레퍼런스와 친절한 문서를 제공하고 있어 사용하기가 아주 간편합니다. push 관련해서 많은 유료 라이브러리가 있지만 모두 FCM을 기초로 하고 있지 않을까 싶습니다. 실제로 제가 회사에서 사용해본 라이브러리는 FCM을 상속받아서 사용하고 있었습니다. 토큰을 이용한 방식 FCM 라이브러리를 추가하면 제일 먼저 확인하는 것이 토큰인데, 이도 알아서 해주기 때문에 우리가 따로 무엇을 구현해줘야 할 필요가 없습니다. 문서대로 오버라이딩 하라는 클래스만 생성해주고 값을 확인해보면 토큰이 제대로 받고 있다는 것을 쉽게 확인할 수 있습니다. override fun onNewToken(token: S..