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

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

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →
Avatar for 김노트 김노트
December 12, 2023
200

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

Avatar for 김노트

김노트

December 12, 2023

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 플랫폼 기능을 구현하는 패키지 만들어보기