반응형
2021 NAVER DEVIEW 2 [모바일편]
- Android Jetpack Compose 실제 서비스 적용후기
- React Native 프로젝트를 Native로 변환하면서 Jetpack Compose 를 도입
- XML 사용을 최소화 하고 자체 프레임워크를 이용하여 draw하는 방식으로 개발
- 장점으로 빌드속도 빠르고 앱 크기가 작아짐, Live Edit of literals 이용(에뮬레이터 보면서 UI 코그 수정)
- @composible
- 단점으로는 Activity 구조가 아니라서 라이프 사이클 대응이나 Firebase Tracking이 어려움
- 각 상태마다 별도로 State 관리 필요, 공용 변수 사용이 불가하여 DI 혹은 전역변수 사용을 해야함
- 선호되는 아키텍처의 부재. MVSM 패턴을 디자인함 - SwiftUI 도전기 : CLOVA NOTE
- 2019년 SwiftUI 1.0 출시되었고 iOS 13부터 지원함
- 데이타의 변화에 자동적으로 View를 업데이트 시켜줌(모델을 ObservableObject 키워드로 지정)
- MVVM패턴을 사용하지만 SwfitUI에서는 ViewController 없어지면서 View 전환이나 DeepLink, Animation, Custom View 개발이 어려움. 이를 보완하기 위해서 UIHostingController와 UIViewRepresentable를 사용 - AVPlayer Custom Resource Loader 노하우 공유
- ETech 개발팀에서 일하는 개발자분의 기술 공유 내용
- iOS Player에는 AVPlayer(AvKit), Custom Player(AVFoundation), Proxy 가 있음
- ABR(Adaptive bitrate Streaming) : 네트워크 대역폭에 따라 화질을 결정하는 방식
- HLS 편집 : 기기에 따라 화질을 제한할 필요가 있을때 master.m3u8에서 Media Component 범위를 지정할 수가 있음(Client), TS Component 를 이용하여 미리보기 길이를 제한할 수 있음, 미디어 합성 Discontinuity
- DASH 편집 : 지원되지 않은 포맷을 m3u8로 만들기. Dash는 xml 방식이여서 parsing을 통해 master, media 파일을 생성함
- Chat-Ops 프로젝트 관리 자동화
- Fastlane과 Jenkins를 통해 개발 및 배포에 필요한 자동화 프로세스 지원
- Jenkins CI(Continuous Integration) 구축 : Github와 프로젝트 git 설정
- Jenkins 와 Fastlane을 통한 CD(Continuous Deployment) 구축 : Jenkins 버전 업데이트, QA 배포시 서버 설정 필요, 환경설정(버전과 배포 서버 설정) 후 Excute Shell을 통해 lane 실행
- Github(형상) + Jenkins(빌드) + Fastlane(Apple 배포) : 개발과 배포까지 모든 작업의 일련화. 보안 이슈로 인해 Hubot을 도입하여 Jenkins에 작업을 시킬 수 있도록 하였음(Remote trigger)
- Hubot 서버는 사내 서버에 설치, node.js 설치하고 Hubot을 설치
- NELO 로그 수집 시스템 : Client monitoring하고 해당 App과 SDK별 로그를 분산하여 확인할 수 있는 장점이 있음, NELO를 통한 알림은 Slack API을 호출하고 담당자별에게 Push Notification을 제공함
- Prophet 이라는 머신기계(ML)를 통해 임계치를 확인함
- Trouble Shooting : 해당 환경으로 프로젝트가 많아지면서 프로젝트별 버전이 다른 문제가 생김. Jenkins에서 로컬 버전 체크 로직을 추가하였음. 또한 용량이 부족해짐. 불필요한 파일 삭제하는 앱을 사용 - Kotlin Multiplatform mobile을 활용한 데마에칸 드라이버앱 개발 이야기
- KMM(Kotlin Multiplatfrom Mobile) SDK : Android 와 iOS용 모바일 애플리케이션 개발을 지원하기 위한 SDK
- 데마에칸 : 일본 시장에서 라인에서 만든 배달 앱
- 공용 모듈 개발이 중점(Kotlin gradle script)
- Trouble Shooting : Global Object 참조시 @threadLocal 사용, 동시성 문제가 발생하는데 freezing 함수 이용, memory System 등
- 라인에서 만든 KMM 라이브러리 : 푸시 알림, 저장소(일반/보안), 이벤트, 우버 등
참고사이트
https://deview.kr/2021/sessions
# 참고! 기술 온라인 세미나 바로가기
1. Android Jetpack Compose 실제 서비스 적용후기 https://tv.naver.com/v/23652473/list/753227
2. SwiftUI 도전기 : CLOVA NOTE https://tv.naver.com/v/23652315/list/753227
3. AVPlayer Custom Resource Loader 노하우 공유 https://tv.naver.com/v/23652319/list/753227
4.Chat-Ops 프로젝트 관리 자동화 https://tv.naver.com/v/23650690
5. Kotlin Multiplatform mobile을 활용한 데마에칸 드라이버앱 개발 이야기 https://tv.naver.com/v/23652724
반응형
'Seminar' 카테고리의 다른 글
2022 배민 WOOWACON 우아콘 1 (0) | 2022.11.04 |
---|---|
2021 NAVER DEVIEW 3 (0) | 2021.12.16 |
2021 NAVER DEVIEW (0) | 2021.11.25 |
Android 11 Meetup (0) | 2021.04.08 |
드로이드나이츠 2020 (0) | 2020.03.06 |
댓글