プログラミング教務部

MacOSでFlutterを使ってデスクトップアプリを作成します。最終目標は時間割ソフトの作成。

Flutter 3.0

なかなかブログの更新が出来ていないにも関わらず

時間は流れていき、とうとうFlutter 3.0のリリースのニュースが飛び込んできました。

Upgrading Flutter | Flutter

早速 Flutter 3.0にアップグレードしました。

筆者としては、待ちに待ったMacOSのデスクトップアプリが正式版になったことが最大のニュースです。

アップグレードは簡単でターミナルから

 

$ flutter upgrade

 

と入力し、アップグレードを待ちます。

 

Flutter 3.0.0 • channel stable • https://github.com/flutter/flutter.git
Framework • revision ee4e09cce0 (7 days ago) • 2022-05-09 16:45:18 -0700
Engine • revision d1b9a6938a
Tools • Dart 2.17.0 • DevTools 2.12.2

 

と表示され、自動的に doctorも実行されます。

Flutterには、安定版、ベータ版、マスター版の3つのリリースチャネルがあるようなので、現在のチャンネルを表示するために以下のようにコマンドを入力します。

 

$ flutter channel

 

以下のように出力され安定版に設定されていることがわかります。

 

Flutter channels:
  master
  beta
* stable

 

無事アップグレードに成功して、flutter run も成功しました。

おなじみの画面が見れて感動です。

MacOSのデスクトップアプリが作成できるので試して見たいと思います。

GitHubのSSH認証でハマりました

久しぶりにGitHubに接続したら

このブログを書くきっかけになったFlutter

学習用のプログラムをGitHubにアップしようと久しぶりにアクセスしました。

実は最近GUIばかり使用しているので、コマンドを入力するのは億劫になっています。gitはコマンドラインツールなので、GitHubにはSourceTreeでアクセスしているんです。そこで、抜け出せない沼にはまりました。

 

git@github.com: Permission denied (publickey).

fatal: Could not read from remote repository.

このような、メッセージが表示されてpushができない状態になりました。ネットで調べてみると結構前からGitHubはパスワード認証からSSH認証に変更されていたようで、ここはネットの力を借りて解決しようと思いましたが、一筋縄で行かなかったのでここに記憶の限り紹介します。

まずはHTTPSからSSHプロトコルを変更

とりあえず認証プロトコルSSHに変更しないと始まらないのでSourceTreeからアカウントをSSHに変更した。下の画面はSourceTreeのアカウント選択画面でダブルクリックすると現れる画面でSSHに変更します。

f:id:sawayaka_e1:20220416200431p:plain

ここから迷路の始まりです。編集ボタンを押してプロトコルを変更すると<アカウント名>-GitHubといった感じのSSHキーを作ってくれます。そのままGitHubのサイトに飛んでくれる優れものです。筆者の環境ではエラーになりましたが、通常うまくいくはず。

f:id:sawayaka_e1:20220416200832p:plain

筆者はSSHキーをクリップボードにコピーして、自分で貼り付けました。貼り付ける先は、GitHubの自分のアカウントにあるメニューからSettingsを選択して、SSH snd GPG keys を選択してSSHキーを登録しました。

f:id:sawayaka_e1:20220416201721p:plain


これでGitHubSSH接続するための公開鍵・秘密鍵の作成と公開鍵をGitHubに登録ができたので、無事に接続といきたいところです。

元々、使えていたのでここに実は油断があったのは3日後に思い知りました。

GitHubとの通信開始

タイトルにあるようにまず通信の確認をしたわけではありません。いきなりpushを試しました。まだエラーになります。Permission denied (publickey). が眩しいです。

泣く泣く、原因追及の旅は続くのでここで通信の確認をするわけです。

 

$ ssh -T git@github.com

 

コマンドラインから入力してみます。すると接続は正常にできていました。では、pushできない原因は?謎は深まるばかりです。

またまた、ネットで調べると~/.ssh/configに設定があるらしいので記述の確認してみることにしました。下の画像は訂正したものですがIdentityFile の記述が先にも書きましたがSourceTreeが作成してくれるファイルが<アカウント名>-GitHub.pubなので最初の記述は下のようではありませんでした。標準ではid_rsa.pubらしいです。複数アカウントを使い分けるときに違う名前で使用するらしいですが、よくよく考えてみると複数アカウントを使い分けているわけではないので、標準の名前にしようと思いました。これが成功の第一歩でした。

f:id:sawayaka_e1:20220416210504p:plain

 

 

勇気を出してコマンドライン

 

$ mv <アカウント名>-GitHub.pub id_rsa.pub

$ mv <アカウント名>-GitHub id_rsa

 

としました。

パーミッションを確認し

 

$ chmod 644 id_rsa

 

で読み出しを許可します。そしてエディタで~/.ssh/configを編集しました。上記の画像のようにIdentityFile を標準の名前id_rsa.pubにしました。

これでもpushできない

まだpushできません。途方に暮れていたら、ふと立ち寄ったサイトの記述が目に止まりました。下図をよく見てもらえると、ぼかしを入れてあるので分かりにくいですがパスがSourceTreeでは入力されているのですが、GitHubリポジトリのクローンにあるパストが一致していなかったのです。

f:id:sawayaka_e1:20220416213258p:plain

f:id:sawayaka_e1:20220416213436p:plain

このパスをGitHubからコピーしてSourceTreeのパスに貼り付けると、なんと4日間できなかったpushができました。

参考にしたサイトを紹介します

みなさんありがとうございます。本当に助かりました。

ormcat.net

qiita.com

qiita.com

 

FlutterSDKをインストール

初めまして、SAWAYAKAと申します。

このブログはFlutterの学習とデスクトップアプリの作成です。

モバイルアプリは一応考えていません。

 

では早速、開発環境のインストールを行います。

その前にSAWAYAKAの環境を紹介します。

macOS Catalina 10.15.7

MackBookAir2012

で開発しています。

 

まずはFlutterのダウンロードからです。リンクを貼ります。

Flutter - Build apps for any screen

もちろんmacOSを選択してダウンロードしました。

下のスクリーンショットを参考に、ホームに解凍しました。

 

f:id:sawayaka_e1:20220403164159j:plain

$ flutter --version

と入力すると以下のように出力されたはずです。

Flutter 2.10.4 • channel stable • https://github.com/flutter/flutter.git
Framework • revision c860cba910 (9 days ago) • 2022-03-25 00:23:12 -0500
Engine • revision 57d3bac3dd
Tools • Dart 2.16.2 • DevTools 2.9.2

 

サイトを読み進み、次のコマンドを実行して、セットアップを完了するためにインストールする必要のある依存関係があるかどうかを確認します。

 

$ flutter doctor

 

Running "flutter pub get" in flutter_tools...                      10.5s
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.10.4, on Mac OS X 10.15.7 19H524 darwin-x64,
    locale ja-JP)
[✗] Android toolchain - develop for Android devices
    ✗ Unable to locate Android SDK.
      Install Android Studio from:
      https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK
      components.
      (or visit https://flutter.dev/docs/get-started/install/macos#android-setup
      for detailed instructions).
      If the Android SDK has been installed to a custom location, please use
      `flutter config --android-sdk` to update to that location.

[!] Xcode - develop for iOS and macOS (Xcode 12.4)
    ! Flutter recommends a minimum Xcode version of 13.
      Download the latest version or update via the Mac App Store.
    ✗ CocoaPods installed but not working.
        You appear to have CocoaPods installed but it is not working.
        This can happen if the version of Ruby that CocoaPods was installed with
        is different from the one being used to invoke it.
        This can usually be fixed by re-installing CocoaPods.
      To re-install see
      https://guides.cocoapods.org/using/getting-started.html#installation for
      instructions.
[✗] Chrome - develop for the web (Cannot find Chrome executable at
    /Applications/Google Chrome.app/Contents/MacOS/Google Chrome)
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.
[!] Android Studio (not installed)
[✓] IntelliJ IDEA Community Edition (version 2019.1.1)
[✓] VS Code (version 1.65.2)
[✓] Connected device (1 available)
[✓] HTTP Host Availability

! Doctor found issues in 4 categories.

 

Xcodeのバージョンが古いようなのですが、デスクトップアプリしか作らない予定なので今回はXcodeを入れずにプログラムを作成していきます。

以下のようにコマンドを入力してプロジェクトを作成します。

 

$ flutter create .

 

そして、ひとまず実行

 

$ flutter run

 

f:id:sawayaka_e1:20220403185646j:plain

ひとまず、実行できました。動作も問題なくFlutterの凄さを実感できました。

ソースコードはこれから研究しようと思います。