일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- reject
- DevTools
- Xcode
- reactivex
- delegate
- IOS
- BloC
- error
- TextInputFormatter
- FLUTTER
- 갤럭시폴드
- 성능 개선
- Equatable
- GetX
- copy on write
- fastlane
- shorebird
- FocusNode
- flutter web
- Codepush
- appstore
- Codemagic
- Swift
- 무선빌드
- Android
- abstact
- PG결제
- MVVM
- SHIMMER
- struct
- Today
- Total
목록2023/12 (6)
뚝딱뚝딱 모바일

안 그래도 바쁜 연말에 App Store 리젝을 두 번이나 당했습니다. 사유는 권한을 허용하기 위해 뜨는 Alert 코멘트에 권한을 사용하는 이유에 대한 설명과 예시가 없다고 합니다. 해결 방법 info.plist에 들어가 리젝 사유가 되는 권한 부분을 찾습니다. 저희 앱은 위치 권한이 문제였습니다. 그래서 아래 두 항목의 코멘트를 수정하여 주었습니다. 여러 사람들의 자료와 이야기를 들어보니, 왜 필요한지, 어디에 사용되는지, 허용하지 않아도 앱을 쓸 수 있는지 같이 세세하게 내용을 작성하면 좋다고 합니다. (심사해 주시는 분에 따라, 허용 관점이 조금씩 다른 것 같더라고요) 이를 다 적었는데도 리젝을 당하셨다면, 어디에 사용되는지 적는 부분에서, 앱에서 표기되는 기능 이름과 같은 지 확인해 주셔도 좋을..
안녕하세요! 오늘 글은 Error가 아닌 Warning이긴 하지만, 알아두시면 좋을 것 같아 적게 되었습니다. 어떤 상황에서 뜨나? 주로, 비동기적 상황에서 context를 사용하려할 때 뜹니다. someFutureFunction().then((_) async { String example = await awaitFunction(); context.read().add(SampleEvent()); // Bloc 코드 }); 예시 코드입니다. 이렇게 async 함수 안에서 await 후에 context를 사용하는 코드가 존재한다면, 노란 밑줄이 코드 밑에 쳐지면서 Warning이 생겨납니다. 해결법 사실 해결법은 매우 쉽습니다. context를 사용하는 코드 부분을 mounted가 true일 때만, 실행해..

이번에는 추상 클래스에 대해 정리해보려 합니다. 추상 클래스란? 추상 클래스는 추상 메서드를 가질 수 있는 클래스를 뜻합니다. 추상 메서드는 몸체가 없는 함수를 뜻합니다. 아래와 같은 함수를 추상 메서드라고 합니다. void something(); 일반적인 클래스는 추상 메서드를 가질 수 없지만, 추상 클래는 이를 가질 수 있습니다. 그리고 추상 클래스는 선언할 때 abstract 키워드를 사용하여 선언합니다. abstract class Vehicle { void honk(); } 특징 추상 클래스는 상속(extends) 또는 구현(implements)할 수 있습니다. class Car extends Vehicle { @override void honk() { // TODO: implement sound..

오늘은 정말 자주 쓰이는 라이브러리인 Equatable에 대해 알아보겠습니다. 활용도가 정말 높은 라이브러리이니 알아만 두셔도 좋을 것 같습니다. equatable | Dart Package A Dart package that helps to implement value based equality without needing to explicitly override == and hashCode. pub.dev 다른 언어를 접해보셨던 분들이라면, Equatable은 언어 자체적으로 존재해야 되는 거 아닌가? 왜 라이브러리로 따로 존재하지? 싶으실 겁니다. Dart에서는 모든 클래스들은 Object를 상속하고, 이 Object에는 operator 함수가 존재해 override 함으로 수정할 수 있기 때문에,..

[Flutter] 아키텍처에 대한 고민 (1) - 처음 해보는 Flutter 안녕하세요! 이번에 적으려고 하는 내용은 제가 Flutter 개발을 시작하면서, 어떤 아키텍처들을 구성하고, 고민했는지에 대한 내용을 적어보려고 합니다. 한 3편 정도의 글이 나오지 않을까 생각 nkstar-ios.tistory.com 위 글에서 이어집니다. 음... 어... 아...? 뭔가 이상하다 신규로 만드는 앱에서도 이전 글에서 말한 아키텍처를 적용하여, 코드를 짜기 시작하였습니다. Flutter가 익숙해지고, 코드도 손에 익을 무렵, 점차 코드를 작성하면서 불편함이 생기기 시작했습니다. ViewModel이 필요 없는 View에 관해서 생각을 못했다. bindInput(), bindOutput() 함수들이 비대해지기 시..

안녕하세요! 이번에 적으려고 하는 내용은 제가 Flutter 개발을 시작하면서, 어떤 아키텍처들을 구성하고, 고민했는지에 대한 내용을 적어보려고 합니다. 한 3편 정도의 글이 나오지 않을까 생각하고 있습니다. 여유되시는 분들은 천천히 읽어주시고, 의견 나눠주시면 감사하겠습니다. Flutter? 해보겠습니다. 전 처음부터 Flutter를 공부하고, 이를 목표로 삼았던 사람이 아니었습니다. 학생 때는 Android 개발을, 취업 후에는 iOS 개발을 2년 정도 하다 이직을 하게 되었는데, 이직한 회사에서 전 여러 플랫폼을 커버하여야 했고, 이를 위해 Flutter를 시작하게 되었습니다. 다행히 관심이 좀 있었고, SwiftUI로 선언형 UI에 대해 미리 접했었기 때문에, Flutter와의 첫 만남은 어렵지 ..