スキップしてメイン コンテンツに移動

Flutter - インストールからAzure Web Appに登録まで超々入門!

最近Flutterがいい!

とかよく言われてるので触ってみました!


私の場合はFlutterを利用してモバイルとかPC用のWeb環境を作ろうと思いました。余裕があったらそのままモバイルアプリも作れるからいいなと思ってこれを選択しましたね。

ここではWindows環境でVSCodeを利用してAzureのサーバーレスのWeb Appを利用する書込みです。マイナー過ぎて本当に大変でした。AzureのWeb AppにはFlutterを基本でサポートしてないのでNode.jsを利用してアップすることになります。





では早速Flutter SDKをダウンロードしましょう。

https://flutter.dev/docs/get-started/install

私はWindowsを使ってるのでWindowsを選びました。最近モバイル開発環境でよくMacを使ってるユーザーが多いですが、Windowsはマイナーになって書込みがあまりありません。色々想像しながらやるしかありませんでした。


次はFlutterをいじるツールをインストールしないとですね。

https://code.visualstudio.com/download

私の場合はVSCodeをよく使うためVSCodeにしました。

特にAndroidとかiOS用開発はしないと思いましたがスマホの仮想マシンもVSCodeから起動できることを知りました!


次はFlutterをVSCodeに繋ぎこみ!

ViewメニューからCommand Paletteを選択

上にカーソルが移動したらInstallをタイプ

するとメニューが出てきてExtensions: Install Extensionsを選択

左にExtensionが出てきたらFlutterを検索




Dart CodeのFlutterを選択してください。FlutterのExtensionがいっぱい出てきて何が公式なのか分からなかったので色々やってみたらこれでした。


インストールが終わったらFlutterが正常にインストールされたか確認ができます。

同じくCommandPaletteを開いてもいいですが、私は下のTerminalからやってきました。


PS> flutter doctor



そしたら何がいっぱい出てきてAndroid Studioがありませんとかの警告が出ました。Android Studioをインストールしないとと思ってインストールしましたが、後で見たら要らなかったみたいでした。( ノД`)シクシク…

上のスクショはAndroid Studioをインストールした後取りました。


早速作ってみよう!


View>Command Paletteから

flutterを入力するとFlutter: New Application Projectメニューが見えるので選択!



フォルダーを選択してプロジェクト名を入力すると選択したフォルダの配下にプロジェクト名のフォルダが作成されるので2重にフォルダが作られないようにしてください。


何がいっぱい出てきました。


Webブラウザで起動しましょう。

VSCodeの下に現在の作成環境が見えます。


No Deviceのところをクリックしてみると見せたい環境が選択できます。


私はChromeを選択しました。

そしてmain.dartを開いた状態で左のDebugボタンを押してみます。


Run and Debugボタンが見えたらクリック!


すると勝手にコンパイルしてChromeが起動して表示されます!



おお!作れました!

これをAzureにアップしてみましょう!


まずterminalから



flutter channel beta
flutter upgrade
flutter config --enable-web


そしてnode.jsをインストール。

https://nodejs.org/ja/download/

私は最新バージョンをインストールしました。それからvscodeのextensionに行ってnpm extensionをインストールします


よくわからないのであれこれインストールしてみましたがこれっぽいでした。

またVSCodeのTeminalで


npm install -g express-generator
express
npm install

なにか動いたら正常にインストールされたことです。もしダメだったらVSCodeを再起動してやってみてください。


node.jsのexpress-generatorをインストールしてexpressというWeb環境をダウンロードすることです。何か色々フォルダが作られました!

まだコード1行も書いてなかったので最近はなんでもできますね!


ではFlutterコードをビルドしましょう。


flutter build web


次はnodeの起動位置をビルドされたFlutterのファイルに移し替えます。



mkdir public-flutter
xcopy /s build\web public-flutter


作業フォルダからやってます。

public-flutterフォルダを作成してbuildすると作成されるbuild/webの全てをpublic-flutterにコピーします。まあ、スタートフォルダをbuild/webに指定してもいいですが、間違ってbuildした場合に大変だから念のため!


スタートファイルを指定しないとですね。

app.jsを開きます。



//これが原本
app.use(express.static(path.join(__dirname'public')));

//このように修正
app.use(express.static(path.join(__dirname'public-flutter')));


さて、AzureでWeb Appを作りましょう。

Azureアカウントはお持ちである程度の使い方は分かっている前提で書きます。


Node 12 LTSを選択して作ります。


次は、Githubにレポジトリーを作成します。

Githubは問題なく作れると思うので説明はパスしますね。


そしてAzureのWeb AppのDeploymentからGithubを繋ぎ込みます。


完成!

ではPushしましょう!



git init
git add .
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/<アカウント>/<レポジトリー>.git
git push -u origin main


では待ってみましょう!

AzureのDeploymentにLogがあるのであそこで現状が見れます。

GithubのActionから見るとコンパイルとアップロード状況なども見れます。

完了したらブラウザで確認!



大変よくできました!

さらにブラウザのエミュレーター機能でモバイルバージョンも見れます!

ではでは!



コメント

このブログの人気の投稿

コピペができないときチェックすべきこと! :: よく迷うUiPathのコツ

UiPath( https://uipath.com )はMicrosoft社のWWFを改良した製品なのでVisual Studioより初心者向けに使いやすくなっている。 しかし、初心者がそのまま使うにはかなりのハドルがある。 理由は基本開発者向けの開発ツールを無理やり便利に作ってみたとしても開発の概念と考え方がないと結構躓くことが多い。 そのなかで私もよく迷ったりしていることの一つを整理しとく。 基本Activityはすぐコピぺができるので多数のUiPath Studioを開いて開発してたりする。 ここでコピペをしても反応ないときがよくある。 この場合はこれをチェックすること! 1.Sequenceがなく一つのActivityしかないところにはペーストできないのが多い。 例えば、ifの処理ボックスにはSequenceが最初はない。 そのボックスに一つのActivityはペーストできるのに2個目からはなぜか反応ない。 それで分からないまま新しいActivityを追加してたりしたが、 あそこにSequenceを入れたら解決ができるのだ! 2.正常にペーストできるはずのところに反応ない。 この場合はPackageが合わなくペーストが効かないケースが多い。 DESIGN>Manage Packagesをクリックしてコピー元のパッケージにインストールされているのにコピー先にインストールされてないパッケージを探す! パッケージを一々見るのが難しい!と思ったら メモ帳からファイルがあるフォルダにあるproject.jsonファイルを開いてみる! あそこにJSONの形式でインストールされたパッケージが見えるので比較しやすくなる! ちなみにコピペをすると変数の宣言が大変だと思うが、 そこでもコツがあるのだ! 変数の宣言はなるべく細かくしてSequence単位で管理できるようにする。 全てに影響がある変数はしょうがないから一番広く宣言するけど。 初心者向けの説明だと、 Variablesというところをクリックして変数を開いたらScopeという範囲が見える! 大体Sequenceボックスの名前を変えてないのでSequenceがすらりと表示されてるはずが、Sequenceボックスの名前を付けてたら見やすくなる。 あ

面倒くさいORACLEの文字化け状況

ORACLEはそもそもUTF-8をサポートしてほかの言語はサポートはしているって書いてますが親切ではないようです。 現在サーバー側は昔からUS7ASCIIに設定して日本語を入れてしまい、データは7ビットASCIIモードで読み取りながら日本語のコートがOS側とクライアント側で変換しない必要があります。 クライアント側で文字化けの解決にはNLS_LANGの設定が効くクライアントが必要ですが、一部の有料クライアントにはサポートするようです。 接続構造は参考に https://www.oracle.com/technetwork/jp/content/charcterset-250314-ja.pdf の19スライドのように クライアントからNLS_LANGをUS7ASCIIに設定しても その設定した言語にもらったUTF-8のデータをクライアントが変換すると NLS_LANGを設定しても意味がないようです。 ORACLE SQL Developerがこの様です。 ODBCと直接接続は必ずUTF-8に変換してしまうのでUS7ASCIIになっているDBからはクライアントをいくら変換しても文字化けのままです。 必ずOCI接続を通じてクライアント側から読み取らないとUS7ASCIIは勝手に変換されますね。 この全ての条件が満たした無料クライアントはA5mk2の2.9.1バージョンだけですね。 A5MK2 ver.2.9.1 : https://a5m2.mmatsubara.com/download/a5m2_2.9.1_x64.zip 2.9.1 バージョンでサーバーを設定する場合Uicode変換を強制に無視するオプションがあります。 多分このバージョンの時点ではUTF-8をメインにして設計したDBが少なかったから文字化け対応のためできたオプションでしょう。 しかし、A5mk2の新しいバージョンにもまた結果の変換をしないオプションがなくなって文字化けしてしまいます。開発者はもうUTF-8ではないDBはないと思ってるでしょう。まだまだ残ってますよ~。 クライアント側からの変換などに参考になればと思います! まだ直接お仕事になさってますか? もう遅いです!ソフトウェアロボットにお仕事を任せてどの位自分の作業分量が減ってるかをご確認ください! https://talklowy-jp.b

英語をより楽に勉強できる方法

英語ができなくて良い機会が失われた経験があるでしょう。 GoogleさんもMicrosoftさんも英語で面接をしてます。 私がエンジニアですが技術より言語の学びが優先だと思います。 知り合いの中で技術は低いが英語が上手い人が私より良い道を歩いてます。 それは会話ができなければ技術も通じないとのことでしょう。 それで色々お試ししましたところ 情報を公開しようとしてます! まず、 Khan Academy( https://www.khanacademy.org/ )に入会! これはSalman Khanという人が自分の親戚に数学を教えるために試したやり方が色んな人が参加してグーグルさんとマイクロソフトさんが投資をした 完全無料教育サービス です。 しかし、これは英語でしか話してないので初心者の方には無理があるでしょう。 それでも、この記事をお読みになられた方は基本的な文法は学んだ方だと考えときます。 そして TEDアプリ( https://www.ted.com/ ) をダウンロード。 日本語の字幕がある映像の中で自分の好みの映像を選んでください。 有名なスピーカが話したことが多いので話し方など良い勉強になります。 次は MeetUp( https://www.meetup.com/ja-JP/ ) でしょ。 英会話グループを探して加入。 自分のレベルに合わせて参加してら良い友達もできるし勉強にもなります。 電車で単語ばっかり暗記している方が見つかりますが、 それも悪くは無いけど効率はどうかと思います。 やはり勉強は楽しく!自分の好みでは無いと! 映画も良いしドラマも良いです。それともゲームとか旅行もあるでしょう。 自分の趣味から始めるのが大切だと思います。 もしドロンが趣味だとしたらわざわざググってみる。 そして英語のページから探すんです。 最初は無理があるけど好きなイメージなどが見つかったら読みたいでしょ? そのページをスクリーンショットかプリントでも良いです。 その文書の単語を探して読んでみるのが第一歩ですね。 最初は辛いでしょ。 私の場合には最初には単語10個だけ探しました。 1日10個だけ辞書から探して残りは捨てる。 さらに10個をその場で暗記してそれで終わり。 翌日3~4個し