Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Flutter 엔지니어에게 네이티브 지식이 필요한 이유

Avatar for 김노트 김노트
December 12, 2023
140

Flutter 엔지니어에게 네이티브 지식이 필요한 이유

Avatar for 김노트

김노트

December 12, 2023
Tweet

Transcript

  1. 선언형 UI + One Codebase with Dart 미친 생산성 플러터를

    채택하는 이유 모든 코드가 그럴까? Android / iOS를 하나의 코드로 짤 수 있다
  2. if (Platform.isAndroid) { runOnAndroidInitialize(); } else if (Platform.isIOS) { runOnIOSInitialize();

    } else { throw UnsupportedError(“Not Support this platform”); }
  3. 결국 크로스플랫폼도 플랫폼에 의존할 수밖에 없다 추상화된 레이어 아래인 네이티브가

    문제라면? 네이티브를 알아야 스스로 문제를 해결할 수 있다
  4. 멀티 플랫폼 애플리케이션을 단일 코드베이스로 구축할 수 있어, 제작 및

    유지보수에 소요되는 비용을 최소화할 수 있다 (Dart로 높은 추상화) Flutter의 장점 웬만하면 다 된다 성능도 준수하다 Android / iOS를 알아야 하는 때 “웬만하면 다 된다”가 안 될 때 네이티브 코드로 구축된 패키지(라이브러리)의 이슈를 내가 수정해야 할 때 네이티브에서만 지원하는 기능/라이브러리를 사용해야 할 때 성능이 부족할 때 (하드웨어 가속, MultiThreading)
  5. Android / iOS를 알면 좋은 이유 각 플랫폼에 대한 이해

    Flutter가 의존하고 있는 플랫폼에 대한 이해가 생김 => 동작 원리를 상세하게 알 수 있음
  6. Android / iOS를 알면 좋은 이유 모바일 엔지니어링에 대한 인사이트

    모바일 개발의 메인(중심축)은 훨씬 다양한 개념을 포괄하고 있음 => 모바일 엔지니어링 전반에 대한 인사이트 Android 권장 아키텍쳐 Compile time DI (Hilt) Android Signing Flow iOS Signing Flow
  7. Android / iOS를 알면 좋은 이유 Native Side Exception, 두렵지

    않다! 네이티브에 의존적인 코드로부터 문제가 생기면 바로 대응 가능 (보너스로 오픈소스 기여도 가능!)
  8. 1. Programming Language 플러터 엔지니어가 알아야 할 네이티브 지식들 그래서

    네이티브는 어떻게, 뭘 공부해야 할까요 네이티브 코드 수정 및 작성 핵심 이점 플랫폼 공식문서 이해도 증가 소프트웨어 엔지니어링 인사이트 참고할 수 있는 소스 증가
  9. 2. 어떻게 앱이 동작하는가 플러터 엔지니어가 알아야 할 네이티브 지식들

    그래서 네이티브는 어떻게, 뭘 공부해야 할까요 동작 원리에 대한 이해 핵심 이점 문제 발생 원인 파악 용이 소프트웨어 엔지니어링 인사이트 플랫폼 이해도 증가 Lifecycle ᠂ Intent ᠂ Context ᠂ Service (background, foreground) Components (Architecture Layer)
  10. 3. 어떤 코드가 문제를 일으키는가 / 어떤 오류가 발생할 수

    있는가 플러터 엔지니어가 알아야 할 네이티브 지식들 그래서 네이티브는 어떻게, 뭘 공부해야 할까요 예기치 않은 오류 최소화 (강제종료) 핵심 이점 네이티브 오류에 즉각적인 대응 가능 예외/오류 처리 엔지니어링 인사이트 Language Exception(NPE) ᠂ Memory Issue(OOM) ᠂ ANR Platform Library Issues(jetpack, okhttp, alamofire, db)
  11. 4. Platform Library / Specific things 플러터 엔지니어가 알아야 할

    네이티브 지식들 그래서 네이티브는 어떻게, 뭘 공부해야 할까요 필요한 플랫폼 기능 구현 핵심 이점 예기치 않은 오류 최소화 모바일 엔지니어링 인사이트
  12. 그래서 네이티브는 어떻게, 뭘 공부해야 할까요 추천하는 공부 시작법 네이티브

    애플리케이션 또는 네이티브에 의존하는 패키지(플러그인) 만들어보기
  13. Android Android Developers 공식 문서 developer.android.com/docs?hl=ko 딥다이브 할 수 있는

    책 그래서 네이티브는 어떻게, 뭘 공부해야 할까요
  14. iOS https://github.com/inswag/Technical_interview_for_iOS_Dev/tree/master/iOS Inswag 님의 Technical_interview_for_iOS_Dev Repository 처음에 전반적으로 공부할 것들을

    참고하면 좋습니다 developer.apple.com/documentation 그래서 네이티브는 어떻게, 뭘 공부해야 할까요 (안드로이드 대비 공부할게 좀 적음) developer.apple.com/documentation/technologies
  15. 정리 왜 네이티브를 알아야 하는가 언젠가는 마주친다 우리는 엔지니어다. 피하지

    말자 뭘 공부해야 하는가 UI 빼고 전부 어떻게 공부를 시작해야 하는가 android / iOS 앱 or 플랫폼 기능을 구현하는 패키지 만들어보기