\/p>\n
<\/p>\n
Finder\u306e\u3001\u300c\u79fb\u52d5\u300d>\u300c\u30db\u30fc\u30e0\u300d\u3092\u958b\u304d\u307e\u3059\u3002\u53f3\u30af\u30ea\u30c3\u30af\u3057\u3066\u65b0\u898f\u30d5\u30a9\u30eb\u30c0\u304b\u3089\u300cDeveloper\u300d\u3068\u3044\u3046\u30d5\u30a9\u30eb\u30c0\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/span><\/p>\n <\/p>\n <\/p>\n <\/p>\n \u89e3\u51cd\u3057\u305fFlutter\u30d5\u30a9\u30eb\u30c0\u3092\u5148\u307b\u3069\u4f5c\u6210\u3057\u305fDeveloper\u3068\u3044\u3046\u30d5\u30a9\u30eb\u30c0\u5185\u306b\u5165\u308c\u307e\u3059\u3002<\/span><\/p>\n <\/p>\n <\/p>\n Finder\u306e\u300c\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u300d>\u300c\u30e6\u30fc\u30c6\u30a3\u30ea\u30c6\u30a3\u300d>\u300c\u30bf\u30fc\u30df\u30ca\u30eb\u300d\u3092\u958b\u304f<\/span><\/p>\n \u30bf\u30fc\u30df\u30ca\u30eb\u5185\u306b\u300cnano ~\/.zshrc\u300d\u3092\u5165\u529b\u3057\u3066\u30a8\u30f3\u30bf\u30fc\u30ad\u30fc\u3092\u304a\u3059\u3002.zshrc\u30d5\u30a1\u30a4\u30eb\u3092nano\u30b3\u30de\u30f3\u30c9\u3067\u7de8\u96c6\u53ef\u80fd\u306b\u3057\u3001Flutter\u306e\u30d1\u30b9\u306e\u30d1\u30b9\u3092\u8a2d\u5b9a\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/span><\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n \u300cexport PATH=”$PATH:[\u3053\u3053\u306bflutter\u306e\u30d1\u30b9]\/bin”\u300d\u3092zshrc\u30d5\u30a1\u30a4\u30eb\u306b\u5165\u529b\u3002\u5148\u307b\u3069\u306eflutter\u306e\u30d5\u30a9\u30eb\u30c0\u3092\u76f4\u63a5\u30bf\u30fc\u30df\u30ca\u30eb\u306b\u30c9\u30e9\u30c3\u30b0&\u30c9\u30ed\u30c3\u30d7\u3059\u308b\u3068\u30d1\u30b9\u304c\u81ea\u52d5\u7684\u306b\u5165\u529b\u3055\u308c\u307e\u3059\u3002\u5165\u529b\u5f8c\u300cY\u300d\u3092\u5165\u529b\u3057\u3066\u30a8\u30f3\u30bf\u30fc\u30ad\u30fc\u3067\u4fdd\u5b58\u3002\u30d5\u30a1\u30a4\u30eb\u540d\u306e\u5909\u66f4\u3082\u306a\u3044\u306e\u3067\u3055\u3089\u306b\u305d\u306e\u307e\u307e\u30a8\u30f3\u30bf\u30fc\u30ad\u30fc\u3067\u7de8\u96c6\u3092\u7d42\u4e86\u3055\u305b\u307e\u3059\u3002<\/span><\/p>\n <\/p>\n <\/p>\n \u2193\u300cengineercafec\u300d\u306e\u90e8\u5206\u304c\u3054\u81ea\u5206\u306e\u30e6\u30fc\u30b6\u30fc\u540d\u306b\u306a\u3063\u3066\u3044\u308b\u306f\u305a\u3067\u3059<\/span><\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n \u30bf\u30fc\u30df\u30ca\u30eb\u306b\u300cflutter doctor\u300d\u3068\u5165\u529b\u3059\u308b\u3068Flutter\u304c\u8a8d\u8b58\u3055\u308c\u3066\u3044\u308b\u304b\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<\/span><\/p>\n Welcome to Flutter!\u3068\u304d\u305f\u3089\u6210\u529f\u3067\u3059!!<\/span><\/p>\n <\/p>\n AndroidStudio\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u306f\u3053\u3061\u3089\u304b\u3089<\/span><\/a><\/p>\n <\/span><\/a><\/p>\n <\/p>\n \u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30d6\u30eb\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u30a4\u30f3\u30b9\u30c8\u30fc\u30e9\u304c\u8d77\u52d5\u3057\u307e\u3059\u3002<\/span><\/p>\n <\/p>\n <\/p>\n \u300cstandard\u300d\u3092\u9078\u629e<\/span><\/p>\n <\/p>\n <\/p>\n Dark\u30c6\u30fc\u30de\u3068Light\u30c6\u30fc\u30de\u3001\u597d\u304d\u306a\u65b9\u3092\u9078\u3073\u307e\u3059<\/span><\/p>\n <\/p>\n <\/p>\n \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u304c\u7d42\u4e86\u3057\u305f\u3089\u3001Android Studio\u3092\u8d77\u52d5\u3057\u307e\u3059\u3002<\/span><\/p>\n \u8d77\u52d5\u753b\u9762\u306e\u53f3\u4e0b\u306b\u3042\u308b\u300cConfigure\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059<\/span><\/p>\n <\/p>\n <\/p>\n \u300cPlugins\u300d\u3092\u9078\u629e<\/span><\/p>\n <\/p>\n <\/p>\n Plugin\u30a6\u30a3\u30f3\u30c9\u30a6\u304c\u958b\u304f\u306e\u3067\u3001\u5de6\u4e0a\u306e\u691c\u7d22\u6b04\u306b\u300cflutter\u300d\u3068\u5165\u529b\u3057\u3066Enter\u3092\u62bc\u3057\u307e\u3059\u3002<\/span><\/p>\n \u4e00\u756a\u4e0a\u306b\u8868\u793a\u3055\u308c\u305f\u300cFlutter\u300d\u3068\u3044\u3046\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u53f3\u4e0a\u306e\u300cInstall\u300d\u30dc\u30bf\u30f3\u3092\u62bc\u3057\u3066\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002<\/span><\/p>\n <\/p>\n <\/p>\n \u4ee5\u4e0a\u3067Android\u306e\u74b0\u5883\u69cb\u7bc9\u306f\u7d42\u4e86<\/span><\/p>\n <\/p>\n Finder\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30bf\u30d6\u304b\u3089\u300cApp Store\u300d\u3092\u30af\u30ea\u30c3\u30af\u3002\u300cXcode\u300d\u3068\u691c\u7d22\u3057\u3001 Xcode\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/span><\/p>\n <\/p>\n <\/p>\n <\/p>\n \u3053\u308c\u306b\u3088\u3063\u3066Xcode\u30e9\u30a4\u30bb\u30f3\u30b9\u5408\u610f\u304c\u3055\u308c\u3001Xcode\u304c\u4f7f\u7528\u53ef\u80fd\u3068\u306a\u308a\u307e\u3059\u3002<\/span><\/p>\n <\/p>\n \u4ee5\u4e0a\u3067iOS\u306e\u74b0\u5883\u69cb\u7bc9\u306f\u7d42\u4e86<\/span><\/p>\n <\/p>\n \u30a2\u30d7\u30ea\u3092\u5b9f\u969b\u306b\u4f5c\u6210\u3059\u308b\u306b\u306f\u307e\u305a\u3001Android\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u958b\u304d\u307e\u3059\u3002\u300cCreate New Flutter Project\u300d\u3092\u9078\u629e\u3002<\/span><\/p>\n <\/p>\n Flutter\u306e\u30d1\u30b9\u304c\u304d\u3061\u3093\u3068\u901a\u3063\u3066\u3044\u308b\u304b\u78ba\u8a8d\u3057Next\u3092\u30af\u30ea\u30c3\u30af\u3002<\/span><\/p>\n <\/p>\n app\u540d\u3068app ID\u540d\u3092\u305d\u308c\u305e\u308c\u5165\u529b\u3057\u305f\u3089Finish\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210<\/span><\/p>\n <\/p>\n \u4f5c\u6210\u3055\u308c\u305f\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4e0a\u90e8\u306e\u5b9f\u884c\u6a5f\u30bf\u30d6\u3092\u300cChrome(web)\u300d\u306b\u5909\u3048\u5b9f\u884c\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002<\/span><\/p>\n <\/p>\n \u5b9f\u884c\u5f8c\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u5165\u3063\u3066\u3044\u308b\u30ab\u30a6\u30f3\u30c8\u30a2\u30d7\u30ea\u304c\u8868\u793a\u3055\u308c\u305f\u3089\u6210\u529f\u3067\u3059!<\/span><\/p>\n <\/p>\n <\/p>\n \u30fbflutter doctor(\u30bf\u30fc\u30df\u30ca\u30eb\u4e0a\u3067\u52d5\u304b\u3059Flutter\u306e\u74b0\u5883\u8a3a\u65ad\u30b3\u30de\u30f3\u30c9)\u3092\u3057\u305f\u3089AndroidStudio\u3067\u30a8\u30e9\u30fc\u5410\u304f<\/span><\/p>\n AndroidStudio\u306e SDK Tools\u306eAndroid SDK Command-line Tools\u306b\u30c1\u30a7\u30c3\u30af\u3092\u5165\u308c\u3066\u300cOK\u300d\u3092\u62bc\u3057\u6709\u52b9\u306b\u3059\u308b\u2192\u30bf\u30fc\u30df\u30ca\u30eb\u3067flutter doctor –android-licenses\u3092\u5b9f\u884c\u3057\u89e3\u6c7a!<\/span><\/p><\/blockquote>\n <\/p>\n <\/p>\n \u30fbflutter doctor\u3092\u8d70\u3089\u305b\u308b\u3068[!] Android Studio (not installed)\u3068\u51fa\u3066\u304f\u308b<\/span><\/p>\n >flutter config –android-studio-dir=”\/snap\/android-studio\/current\/android-studio\/”<\/span><\/p>\n \u5165\u529b\u3057\u3066\u5b9f\u884c\u3059\u308b\u3068\u89e3\u6c7a!<\/span><\/p>\n <\/p>\n 5\/29\u306e\u30a4\u30d9\u30f3\u30c8<\/span><\/p>\n 2023\u5e74\u307e\u3067\u306b102\u5146\u5186\u3092\u3082\u751f\u307f\u51fa\u3059\u3068\u4e88\u60f3\u3055\u305b\u308b\u30a2\u30d7\u30ea\u958b\u767a\u3068\u306f(\u7acb\u6d3e\u306a\u30a2\u30d7\u30ea\u958b\u767a\u8005\u306b\u306a\u308b\u4f1a#1)<\/span><\/a><\/p>\n <\/p>\n 7\/3\u306e\u30a4\u30d9\u30f3\u30c8<\/span><\/p>\n <\/span><\/a><\/p>\n <\/p>\n \u8fd1\u5e74\u30a2\u30d7\u30ea\u958b\u767a\u306e\u9700\u8981\u3082\u9ad8\u307e\u308a\u30012023\u5e74\u307e\u3067\u306b\u306f102\u5146\u5186\u3092\u3082\u751f\u307f\u51fa\u3059\u696d\u754c\u3068\u6ce8\u76ee\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/span>\u305d\u3093\u306a\u671f\u5f85\u304c\u9ad8\u307e\u308b\u696d\u754c\u306e\u4e2d\u3067\u5171\u306b\u826f\u3044\u30a2\u30d7\u30ea\u30fb\u30b5\u30fc\u30d3\u30b9\u3092\u69cb\u7bc9\u3067\u304d\u308b\u4ef2\u9593\u3092\u96c6\u3081\u305f\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u30fc\u3092\u30a4\u30d9\u30f3\u30c8\u3092\u901a\u3057\u3066\u69cb\u7bc9\u3057\u305f\u3044\u3068\u8003\u3048\u3066\u304a\u308a\u307e\u3059\u3002<\/span><\/p>\n \u4eca\u5f8c\u3082\u30a8\u30f3\u30b8\u30cb\u30a2\u30ab\u30d5\u30a7\u3067\u306f\u69d8\u3005\u306a\u30a4\u30d9\u30f3\u30c8\u3092\u672a\u7d4c\u9a13\u3067\u3082\u53c2\u52a0\u3067\u304d\u308b\u5f62\u3067\u958b\u304f\u4e88\u5b9a\u3067\u3059\u3002\u7686\u69d8\u306e\u3054\u6765\u9928\u304a\u5f85\u3061\u306b\u3057\u3066\u304a\u308a\u307e\u3059\u3002<\/span><\/p>\n <\/p>\n"}}} こんにちは!エンジニアカフェスタッフの山本です! この記事では、2021年7月3日(土)に実施したイベント「たった1時間でIT素人でもアプリが作れるようになる方法とは(#2 Flutterの環境構築)」の内容についてレポートします。 Flutter(フラッター)は、Googleによって開発されたフリーかつオープンソースのUIのSDKである。単一のコードベースから、Android、iOS、Linux、macOS、Windows、Google Fuchsia向けのクロスプラットフォームアプリケーションを開発するために利用される。(wikiより引用) といった利点があります。 「立派なアプリ開発者になる会」主催者の私は、以前からFlutterを使って様々なアプリを作っていたのですが、Flutterの知名度はまだそこまで高くなく、お互いに情報を交換する場がないことに歯痒さを感じていました。 そんな時に「エンジニアカフェで何かしらのイベントを開くことができる」といった機会を頂け、5/29にアプリ開発についてYoutubeLiveにて発信したり、7/3にはFlutterの環境構築方法について発信してきました。 イベントの様子は、YouTubeで公開しています。動画へのリンクはこの記事の最後に掲載していますので、ぜひご覧下さい。 今後は、様々な方がアプリ開発に関する知見を交換できる場としてコミュニティーを成長させていきたいと考えております。 この記事では、2021/7/3のイベントで行ったFlutterの環境構築について、詳しく説明します。 例として使用するのは、M1チップ搭載のMacbook Air (2020)です。 スペックは以下の通り。 Mac Book Air (M1,2020) チップ Apple M1 メモリ 16GB コア数 8コア 早速Flutterをインストールして行きましょう。今回はM1チップ搭載のMac Book Airを使用して環境構築を行なっていきます。 Flutterのzipファイルをダウンロードし、それを解凍します。 Finderの、「移動」>「ホーム」を開きます。右クリックして新規フォルダから「Developer」というフォルダを作成します。 解凍したFlutterフォルダを先ほど作成したDeveloperというフォルダ内に入れます。 Finderの「アプリケーション」>「ユーティリティ」>「ターミナル」を開く ターミナル内に「nano ~/.zshrc」を入力してエンターキーをおす。.zshrcファイルをnanoコマンドで編集可能にし、Flutterのパスのパスを設定していきます。 「export PATH=”$PATH:[ここにflutterのパス]/bin”」をzshrcファイルに入力。先ほどのflutterのフォルダを直接ターミナルにドラッグ&ドロップするとパスが自動的に入力されます。入力後「Y」を入力してエンターキーで保存。ファイル名の変更もないのでさらにそのままエンターキーで編集を終了させます。 ↓「engineercafec」の部分がご自分のユーザー名になっているはずです ターミナルに「flutter doctor」と入力するとFlutterが認識されているか確認できます。 Welcome to Flutter!ときたら成功です!! ダウンロードしたファイルをダブルクリックするとインストーラが起動します。 「standard」を選択 DarkテーマとLightテーマ、好きな方を選びます インストールが終了したら、Android Studioを起動します。 起動画面の右下にある「Configure」をクリックします 「Plugins」を選択 Pluginウィンドウが開くので、左上の検索欄に「flutter」と入力してEnterを押します。 一番上に表示された「Flutter」というプラグインを右上の「Install」ボタンを押してインストールします。 以上でAndroidの環境構築は終了 Finderのアプリケーションタブから「App Store」をクリック。「Xcode」と検索し、 Xcodeをインストール これによってXcodeライセンス合意がされ、Xcodeが使用可能となります。 以上でiOSの環境構築は終了 アプリを実際に作成するにはまず、Androidのプロジェクトを開きます。「Create New Flutter Project」を選択。 Flutterのパスがきちんと通っているか確認しNextをクリック。 app名とapp ID名をそれぞれ入力したらFinishをクリックしてプロジェクトを作成 作成されたプロジェクトの上部の実行機タブを「Chrome(web)」に変え実行ボタンをクリックします。 実行後、デフォルトで入っているカウントアプリが表示されたら成功です! ・flutter doctor(ターミナル上で動かすFlutterの環境診断コマンド)をしたらAndroidStudioでエラー吐く AndroidStudioの SDK ToolsのAndroid SDK Command-line Toolsにチェックを入れて「OK」を押し有効にする→ターミナルでflutter doctor –android-licensesを実行し解決! ・flutter doctorを走らせると[!] Android Studio (not installed)と出てくる >flutter config –android-studio-dir=”/snap/android-studio/current/android-studio/” 入力して実行すると解決! 5/29のイベント 2023年までに102兆円をも生み出すと予想させるアプリ開発とは(立派なアプリ開発者になる会#1) 7/3のイベント 近年アプリ開発の需要も高まり、2023年までには102兆円をも生み出す業界と注目されています。そんな期待が高まる業界の中で共に良いアプリ・サービスを構築できる仲間を集めたコミュニティーをイベントを通して構築したいと考えております。 今後もエンジニアカフェでは様々なイベントを未経験でも参加できる形で開く予定です。皆様のご来館お待ちにしております。 3.\u300cDeveloper\u300d\u306b\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305f\u300cFlutter\u300d\u3092\u5165\u308c\u308b<\/strong><\/h3>\n
4.\u30bf\u30fc\u30df\u30ca\u30eb\u3092\u958b\u3044\u3066\u300cnano ~\/.zshrc\u300d\u3068\u5165\u529b<\/strong><\/h3>\n
5.\u958b\u3044\u305f\u3089Flutter\u306e\u30d1\u30b9\u3092\u5165\u529b\u3057\u4fdd\u5b58\u3057\u307e\u3059\u3002<\/strong><\/h3>\n
6.\u30d1\u30b9\u304c\u901a\u3063\u305f\u304b\u306e\u78ba\u8a8d[flutter doctor]<\/strong><\/h3>\n
7.AndroidStudio \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb(Android\u5074)<\/strong><\/h3>\n
8.AndroidStudio\u3092\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7<\/strong><\/h3>\n
9.Configure\u304b\u3089Flutter\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u5165\u529b<\/strong><\/h3>\n
8.\u30bf\u30fc\u30df\u30ca\u30eb\u304b\u3089\u300cflutter doctor –android-licenses\u300d\u3092\u5b9f\u884c<\/strong>\u3002<\/span><\/h3>\n
\u3053\u308c\u3067AndroidStudio\u3068Flutter\u304c\u9023\u643a\u3057\u3066\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059<\/span><\/h3>\n
10.Xcode \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb(iOS\u5074)<\/strong><\/h3>\n
11.\u30bf\u30fc\u30df\u30ca\u30eb\u3067sudo xcodebuild -runFirstLaunch\u3092\u5b9f\u884c<\/strong><\/h3>\n
12.\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u4f5c\u6210<\/strong><\/h3>\n
<\/h3>\n
13.\u30a2\u30d7\u30ea\u306e\u5b9f\u884c<\/strong><\/h3>\n
\u3088\u304f\u3042\u308bError<\/strong><\/h2>\n
\u30a4\u30d9\u30f3\u30c8\u306e\u69d8\u5b50(\u52d5\u753b)<\/strong><\/h2>\n
\u6700\u5f8c\u306b<\/strong><\/h2>\n
M1搭載 Macbook AirへのFlutter開発環境のインストール ~PC素人でも1時間あればできるアプリ開発~
Flutter とは
イベントについて
この記事で扱う内容
Flutter インストール(M1チップ搭載mac)
1.Flutterをダウンロード
2.ホームディレクトリ内にDeveloperフォルダを作る
3.「Developer」にダウンロードした「Flutter」を入れる
4.ターミナルを開いて「nano ~/.zshrc」と入力
5.開いたらFlutterのパスを入力し保存します。
6.パスが通ったかの確認[flutter doctor]
7.AndroidStudio のインストール(Android側)
8.AndroidStudioをセットアップ
9.ConfigureからFlutterのプラグインを入力
8.ターミナルから「flutter doctor –android-licenses」を実行。
これでAndroidStudioとFlutterが連携して使えるようになります
10.Xcode のインストール(iOS側)
11.ターミナルでsudo xcodebuild -runFirstLaunchを実行
12.プロジェクト作成
13.アプリの実行
よくあるError
イベントの様子(動画)
最後に