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

Flutterのすヽめ

Avatar for Yuto Yuto
October 04, 2023

 Flutterのすヽめ

社内勉強会用資料

Avatar for Yuto

Yuto

October 04, 2023
Tweet

More Decks by Yuto

Other Decks in Programming

Transcript

  1. Flutterのすゝめ 〜 新規モバイルアプリ開発 ≒ Flutter !? 〜 社内勉強会 勉強会を実施する意図 •

    勉強会で話すために内容整理することで、自身の理解が深まる。 • 間違っている部分があれば指摘いただけ認識修正できる。 • 他の人の考えや意見が得れるきっかけとなり、新たな気づきが得れる。 はじめに • 私はFlutterを主で開発している身なので、贔屓目に記載がある可能性があります。 • ここで言う「ネイティブ言語」とは、swift, kotolinのことを指します • コメント、質問、補足、指摘修正、ガヤ、等々ありましたらSlackのスレッドに書き込んでくれたら確認しま す。喜びます。(口頭でもOK)
  2. Flutterの特徴 • iOSとAndroidの双方を同時に開発可能(クロスプラットフォーム) 単純工数が1/2に。 • ホットリロード機能 プログラムを変更したらすぐにUIに変更がかかるので、いちいち再buildする必要が ない。開発体験◎ • 必要なバックエンド周りは全てモバイル特化のミドルウェア(Firebase)で完結

    Push通知、DBのデータは全てリアルタイム更新可能、cloud functions, Auth, etc. • 標準でマテリアルデザイン(Material3)に対応 • Material3 demo app • FigmaでFlutter向きのアプリデザインを簡単に作成する方法 • etc.
  3. 「Flutter」 vs 「React Native」 • Flutter: • Google • ”一回書けば、全て(様々)のプラットフォームで動く”

    • React Native • Facebook • “Write once, Run anywhere” ではなく、“Learn once, Write anywhere” • ≒”Reactを一度学べば、どのプラットフォームでも動く” 参考:React Native: Bringing modern web techniques to mobile / This is working
  4. デバイス固有機能はやや苦手 • デバイスの最新機能 • ネイティブ言語(swift, kotlin)での実装が落ち着いてからFlutterへ持ち込まれる。 • ex.) FaceID, ワイヤレス充電

    • カメラ(VR, AR)やBluetooth連携、など • 基本的な使用であればパッケージで対応できるが、細かい制御や特殊な仕様だと厳 しい印象 • 結局パッケージの中身は内部的にネイティブ言語を呼び出していることが多いの で、自作で機能をネイティブ言語で実装する必要あり。 • ≒逆に考えると、Flutterアプリで欲しい機能があればネイティブ言語で実装がで きるということ!
  5. Greenでの検索結果 検索キーワード 検索結果 Java 1684企業 5583求人 Python 1479企業 4449求人 Aws

    2177企業 8248求人 Typescript 990企業 2620求人 React 1160企業 3154求人 Swift 597企業 1555求人 Kotlin 548企業 1583求人 Flutter 287企業 734求人 React Native 133企業 279求人 • Flutterの求人数は、Java求人の約 1 / 7 • 求人内容のほとんどが以下のどれかの印象 • ネイティブ言語で作られているアプリのFlutterリプレイス 人材 • 今後社内でFlutterを進めていくためのFlutterテックリード 募集 • 数名のスタートアップ企業 • どの条件でも基本はネイティブ言語の開発経験は重要視
  6. まとめ • Flutterとは? • iOSとandroidを同時に開発できるGoogle製のクロスプラットフォーム • Flutterの特徴 • iOSとandroidを同時に開発できる •

    開発体験が良い • バックエンドツールも充実 • 標準デザインはMaterial3 • Flutter vs React Native • 思想の違いです。どちらもクロスプラットフォームとして優秀 • Google Trends的にはFlutterの方やや人気そう • Flutterの課題 • キャッチアップ大変 • デバイス固有の機能は苦手 → 必要であればネイティブ言語の実装が必要 • 人材確保が困難