20190704のiOSに関する記事は8件です。

WWDCの情報をキャッチアップするために個人的にやってきたことを振り返ってみた

1.はじめに

この記事は、毎年自分がWWDCの情報をキャッチアップする上で、広く情報を手に入れるのに意識していること、役立っていることをまとめてみました。
今回のこの記事を書いてみようと思った経緯はこんな感じです。

  • 会社で若手社員から「どうやって幅広く情報を集めているのか?」と聞かれることがあったので、自分のやり方を振り返っていた。
  • 他の方のキャッチアップ方法も聞いてみたいと思っていたため、まず自分のキャッチアップ方法を外部に発信してみようと考えた。
  • iOSDCに申し込んでみていたが、落選してしまった。だが、このままにするのももったいないのと、あまりQiita記事のようなアウトプットを出してこなかったので、良い機会なのでアウトプットしてみよう。

2. イメージする対象者の方

本記事の対象者は下記のような方をイメージしています。

  • まだiOS App開発者としてあまり経験のない方
  • 毎年業務で必要なのでWWDC情報を追っているが、毎年苦労している方

多分、皆さんすでに行われていたり、当たり前なことを書いてしまっているかとは思うのですが、少しでも誰かの役に立てたら嬉しいです。

3.目次

自分のキャッチアップ方法

  • 前年の復習
  • セッション動画を視聴する
  • beta版OS、サンプルコード・Appを触る
  • 勉強会に参加する
  • キャッチアップ内容をまとめる

4.自分のキャッチアップ方法

4.1 前年の復習

当たり前な話なのですが、前年の知識を有しているかどうかで、Keynoteやセッションの内容の理解度は大幅に変わります。

できるのであれば、前年のKeynote・セッション動画を見直したりして復習をするのが良いと思います。
ただ、動画の数と量は多く、なかなか全部を見直すのは大変だと思います。
そのため、最近自分は下記のような本も読んでいます。
スクリーンショット 2019-07-04 14.47.49.png
「iOS 12 Programming」

こちらの本は、PEAKSでクラウドファンディング成立して出版されております。
iOS 11から出版されているのですが、網羅的に内容がカバーされており、これを読むだけで大体の内容は把握できるのではないかと思います。
実際、この本を読み返すと、色々と思い出せるだけではなく、前年のWWDCからの約1年間で得てきた知見・知識と相まって、当時よりもさらに理解が深まったりもします。

4.2 セッション動画を視聴する

何はともあれ、Keynoteを見ないことには始まりません。
まずはKeynote、そのあとPlatforms State of the Unionを見て、自分の興味のあるもの、業務に関わりが深そうなものをピックアップしておきます。
セッション動画は大量にあるのでどれから見るか迷うと思うのですが、まずはピックアップした内容の「What's New ~」や「Introduction ~」を見るようにしています
WWDC 2019 - Videos

動画を見るときに大事にしていることは、英語が得意ではなくとも頑張って見てみることです。
Appleの資料は非常に理解がしやすいものになっており、スライドの絵を見ているだけでも、iOS App開発者であればある程度理解ができる内容となっております。
また聞き取りやすいようにはっきりと話されるので、ヒアリングが苦手でも聞き取れたりする単語はあります。頑張って見てみてください。(自分も英語は得意ではありませんが、大体の内容は理解はできます。)

セッション動画を見ていると、下記のような単語が羅列されたスライドが出てくることがあります。
Image from iOS (3).png
What's New in Machine Learning

ここに書かれている物は重要な内容の場合が多いです。スライドで紹介ができていないアップデート内容も含んでいます。
自分はこのスライドを一時停止して内容を確認するようにしています。

また、最近はリアルタイムでKeynoteを見よう!というイベントも開催されています。

【同時通訳あり】WWDC Extended Tokyo 2019

同時通訳もあり、また参加者とKeynoteが終わった後に議論できるのは魅力的です。
このようなイベントが開催されていたら、ぜひ参加してみてください。(自分は上記イベントに2年連続で参加させていただきました。)

4.3 beta版OS、サンプルコード・Appを触る

WWDCのKeynoteが終わるとすぐにbeta OSがリリースされます。こちらはできるだけ早く触って見てみることをお勧めします。
やはりセッション動画を見るだけでは細いところはわかりませんし、実際に触ることで動きを見れるので、セッションの内容がよりイメージがしやすくなるのではないかなと思います。

またApple Developer Documentationなどの公式資料も更新されるので、こちらも読んでみることはもちろん重要ですが、Siri Shortcuts, Sign in with AppleなどではサンプルコードやAppが配布されています。こちらも触って見ることを強くおすすめします
サンプルコードを見た方が実装がイメージしやすいですし、新機能を自分のAppに組み込むかどうか、実際に触りながら話せるので、アイディアを検討する際により具体的にイメージができます。
(キャプチャ等はNDAに触れる可能性があるため、割愛します)

サンプルコードはWWDC Sessionのページにリンクがあったりします。動画を見る際に確認してみてください。
「Introducing Parameters for Shortcuts」のSoup Chefを参照ください

ただ、beta OS等を触るにはApple Developer Programへの登録が必要となり、お金もかかります(年間299米ドル相当の現地通貨額)のでご注意ください。
(最近はパブリックベータも出ていますが、beta 1のリリースからだいぶ遅れて登場します。)

4.4 勉強会に参加する

WWDC期間が終了すると、国内で数多くの報告会イベントが開催されます。
ぜひ複数のイベントに参加してみてください。自分は今年は2つ参加しました。

ZOZO Technologies【WWDC19 参加報告会】
参加してなくてもついていけるもん!WWDCゴリゴリキャッチアップ会

勉強会に参加すること、複数参加することのメリットは以下のように考えています。

  • 自分のキャッチアップした内容の確認・深掘りができる
  • 発表者の考えを聞くことができ、自分が思いつかなかったような新たな知見を得ることができる
  • 勉強会によってお話しする内容が違うため、WWDCアップデート内容を網羅的に聞くことができる
  • 参加者と意見を交換できる

もし勉強会に参加できなかったとしても、Twitterで勉強会のタグを追って見るだけでも良いかと思います。
発表資料が展開されたり、参加者の声を聞くこともできるのでオススメです。

ただ個人的には自分で少しでもキャッチアップをした状態で参加した方が得られるものが多いと思っています。
理由は、キャッチアップする事で各新機能に対してそれぞれ自分の考えを持つ事ができ、その状態で発表を聞く事で、自分の考えをよりブラッシュアップできると考えているからです。
ぜひ個人でもキャッチアップをしつつ、参加をしてみてください。

4.5 キャッチアップ内容をまとめる

自分の頭の整理のために、自分がキャッチアップした&勉強会で得た情報をまとめたりしています。(例えばKeynote)
これは今年から始めて見たんですが個人的にはこんな感じで結構役に立っています。

  • 見返すことで思い出せたりする。(たくさんキャッチアップしていると忘れてしまうこともあるので・・)
  • Slackのtimesでコメントしたような、一時メモとして書いた内容を1つにまとめられるので散らからない
  • 作成した内容を事業に展開したら喜ばれた(これは自分だけかもですが・・・)

思った以上に良い事があり、これは来年以降も続けていこうと思っています。
ちなみにARKit 3やCore MLなど幅広くまとめていますが、現在70Pほどの資料になっています。
(参考に数枚、資料のスクショを載せておきます。)
スクリーンショット 2019-07-04 16.51.35.png スクリーンショット 2019-07-04 16.44.25.png

5.おわりに

いかがでしたでしょうか。ここに書かれていることはやるのが当たり前だろう、というご意見もあるかと思います。そういったご意見もぜひコメントいただけましたら嬉しいです。
また、こんな良い方法、ツールがあるよ!とかもあればぜひ教えてください。

特に今年は発表内容が多くてキャッチアップが大変だったと思います。
でもやはり基本的にはWWDCのセッションを見て、beta OS・サンプルコードやAppを触ってみるのが、一番の近道なのかな、と思います。

本記事に不備等ございましたら、お手数ですがご連絡いただけると幸いです。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

iOSアプリのコード数を数えたい!!!

そんなときありますよね。
clocを使うと簡単に数えられます。
Homebrewが必要なので、もし入ってなければいれましょう。

Homebrewを入れる

ターミナルから下記コマンドをうってください。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

詳しいインストール方法は公式を見てください。

clocをインストール

clocをインストールしてください。

$ brew install cloc

ここまででお膳立ては完了!

使う

$ cloc (target directory name)

で対象のiOSアプリのライブラリを指定してやれば、下記のような結果が出力されます。

github.com/AlDanial/cloc v 1.82  T=5.73 s (329.7 files/s, 57670.0 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Objective C                    xxx          xxxxx          xxxxx         xxxxxx
Swift                          xxx           xxxx           xxxx          xxxxx
C/C++ Header                   xxx          xxxxx          xxxxx          xxxxx
HTML                            xx           xxxx            xxx           xxxx
(略)
-------------------------------------------------------------------------------

このcloc、Macのディレクトリであれば、何でもイケるので、便利です。

参考

Macでソースファイルのステップ数をカウントする方法

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Flutter・Firebaseでゼロからアプリをつくる。【勉強会レポ】

はじめにの前に(概要/対象読者)

概要

  • Flutterを使うと、簡単に動くアプリが作れる
  • FireBaseと連携するとサーバーレス開発もできる

対象読者

  • 基本的なアプリ開発を経験している人
  • Flutterをいじってみたい人

はじめに

今年の3月に大学を卒業し、4月からアプリを作る会社に入社した者です。
SwiftUIと同じくらい?話題になっているFlutterの勉強会に参加してきたので、そのレポです。

Flutter・Firebaseでゼロからアプリをつくる。(connpassリンク)
勉強会資料
サンプルコード

Flutterのダウンロードから実際にプロジェクトをrunするまで

アプリの開発環境(XcodeまたはAndroidStudio)が用意されている前提です

  • 公式サイトからzipファイルをインストールする

  • 公式サイトに従って環境構築する
    英語ですがものすごく丁寧です、公式サイトを見ながら勉強会の資料を時折読めば詰まらずに構築できます

$ cd <プロジェクトルート>
# 解凍して
$ unzip ~/Downloads/flutter_macos_v1.5.4-hotfix.2-stable.zip
# パス通して
$ export PATH="$PATH:`pwd`/flutter/bin"
  • テストのためにエミュレータを起動する
    事前にエミュを起動していないとflutter runできないようです
$ open -a Simulator
  • プロジェクトを作る 言語を指定する場合はオプションをつけます。デフォルトだとiOSはObj-C、AndroidはJavaになります
$ flutter create -i swift -a kotlin <アプリ名>
$ cd <アプリ名>
  • プロジェクトを実行する
$ flutter run

ダウンロード時に用意されていたアプリが起動できます。ぼたんぽちぽちー
というかこれだけでこれだけで動くアプリができるのすごいですね :astonished:
1_sO_6n1Gt9oLV7R0G2gqgyg.png
今回の勉強会はハンズオンだったので「動けばいいや」で作っていましたが、ちゃんとした開発をする場合はflutter doctorしてあげましょう。結構怒られます。

$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, v1.5.4-hotfix.2, on Mac OS X 10.14.5 18F132, locale ja-JP)

[!] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    ✗ Android license status unknown.
      Try re-installing or updating your Android SDK Manager.
      See https://developer.android.com/studio/#downloads or visit https://flutter.dev/setup/#android-setup for
      detailed instructions.
[!] iOS toolchain - develop for iOS devices (Xcode 10.2.1)
    ✗ libimobiledevice and ideviceinstaller are not installed. To install with Brew, run:
        brew update
        brew install --HEAD usbmuxd
        brew link usbmuxd
        brew install --HEAD libimobiledevice
...........()

アプリを書き換えて機能追加する場合

  • メイン画面にあたる、lib/main.dartファイルを書き換えてUIを作成しましょう
    もちろんlib/以下であれば複数ファイルに分けて書いてもOKです。

ex) カスタムテキストフィールドを作る場合

  final emailInputController = new TextEditingController();
  Widget _showEmailForm() {
    return TextFormField(
      controller: emailInputController,
      decoration: InputDecoration(
        border: const UnderlineInputBorder(),
        labelText: 'Email',
      ),
    );
  }

テキストフィールドや○○View、リスナーなど、一部の部品はWidgetとして用意されています。
TextFormFieldはテキストフィールドのWidget、TextEditingControllerは入力された文字列をリスナーに通知する、などの役割を持つWidgetです。
「iOSで言う所のTableView、Androidで言う所のListViewはFlutterだとListView」のような具合に大体のパーツが用意されているようです。

FireBaseと連携する場合

FireBaseと連携する際にiOSの場合バンドルID(Bundle Identifier)、Androidの場合パッケージ名が必要になります。その後ダウンロードされるplist(JSON)ファイルをXCode(AndroidStudio)のプロジェクトルートに配置します。

スクリーンショット 2019-07-04 16.08.55.png
スクリーンショット 2019-07-04 16.09.13.png

注意点

FireBaseなどの外部ライブラリを使う場合はpubspec.yamlを編集する必要があります。ファイル内のdependencies以下を編集し、pub getコマンドを叩きます。

(前後略)pubspec.yaml
# firebase及びfiewbaseと連携したGoogle analyticsを導入する場合
dependencies:
  flutter:
    sdk: flutter
  firebase_core: 0.4.0  # add dependency for Firebase Core
  firebase_analytics: 3.0.3  # add dependency for Google Analytics for Firebase
  firebase_database: 3.0.3
  firebase_auth: 0.11.1
  rapido: 0.1.9
$ flutter packages pub get

さいごに

本当はもう少し踏み込んだ実装をしたかったのですが、勉強会の時間の都合でここまでしか進められませんでした。UIがちょっと作れるだけではアレなのであれこれ試して追記していきたいです。
こちらも試してないのですが、同期から「デバッグモードでflutter runするとホットリロードせずに変更が反映されるから楽になる」とタレコミがありました。
Flutterでフロント開発して、FireBaseと連携してサーバーレスにアプリを開発...って、すごく「イマドキエンジニア」感があって高まりますね :innocent: :innocent: :innocent:
(高まりだけで記事を書いたので着地点が迷子になったことは反省しています)

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Swift】Swift5.1からenumのAssociated Valuesにデフォルト値を設定できるようになった

Swiftのenum

Associated Valuesという付属の値をenumの要素に含めることができます。

Associated Valuesは初期化時に値を設定する必要がありましたが
Swift5.1よりデフォルト値を設定することができるようになりました。

今回は公式のガイドに載っている例を使って見てみました。
https://docs.swift.org/swift-book/LanguageGuide/Enumerations.html

検証環境: Xcode11 Beta3

これまで

下記ように全ての値を指定する必要があります。

enum Barcode {
    case upc(Int, Int, Int, Int)
    case qrCode(String)
}

var productBarcode = Barcode.upc(8, 85909, 51226, 3)

print(productBarcode) // upc(8, 85909, 51226, 3)

Swift5.1

enum Barcode {
    case upc(a: Int = 1, Int, Int, Int)
    case qrCode(String)
}

var productBarcode = Barcode.upc(85909, 51226, 3)

print(productBarcode) // upc(a: 1, 85909, 51226, 3)

とデフォルトの値を設定することができるようになります。
ただし
ラベル引数を設定しないとコンパイルエラーになりました。

例えば下記のように間を抜かしても大丈夫なようです。

enum Barcode {
    case upc(a:Int = 1, Int, Int, d: Int = 4)
    case qrCode(String)
}

var productBarcode = Barcode.upc(85909, 51226)

print(productBarcode) // upc(a: 1, 85909, 51226, d: 4)

少しの変化かもしれませんが
これで冗長な記述が少し減ればうれしいですね:smiley:

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

willTransition系のまとめ

取り上げるのは
viewWillTransition(to newSize)
viewWillTransition(to size, with coordinator)
willTransition(to newCollection, with coordinator)

※一旦和訳しただけ あとでまとめます

viewWillTransition(to newSize)

アプリケーション拡張機能の一部であるView Controllerの場合、そのビューのサイズが変更されようとしているときに呼び出されます。

newSize

View Controllerのビューの新しいサイズ。

使い方

サイズの変更に応じてレイアウトを変更したい場合、この方法をオーバーライドしてください(アニメーション化されている可能性があります)。

viewWillAppearみたいに考えればいいのかな

viewWillTransition(to size, with coordinator)

ビューのサイズが変更されようとしていることをコンテナに通知します。

size

コンテナのビューの新しいサイズ

coordinator

サイズ変更を管理する遷移コーディネータオブジェクト。
このオブジェクトを使用して、変更をアニメートしたり、進行中の移行に関する情報を取得したりできます。

使い方

表示されているView Controllerのビューのサイズを変更する前に、UIKitはこのメソッドを呼び出します。 このメソッドを自分のオブジェクトでオーバーライドして、サイズ変更に関連する追加のタスクを実行するために使用することができます。 たとえば、コンテナView Controllerはこのメソッドを使用して、埋め込まれた子View Controllerの特性をオーバーライドすることがあります。 行った変更をアニメートするには、提供されているコーディネータオブジェクトを使用します。

カスタムView Controllerでこのメソッドをオーバーライドする場合は、UIKitがサイズ変更メッセージを適切に転送できるように、実装のある時点で常にsuperを呼び出してください。 View Controllerは、サイズ変更メッセージを自分のビューと子View Controllerに転送します。 プレゼンテーションコントローラは、サイズの変更を表示されているView Controllerに転送します。

willTransition(to newCollection, with coordinator)

traitCollectionが変更されたことをコンテナに通知します。

newCollection

コンテナに適用される特性。

coordinator

特性変更を管理する遷移コーディネータオブジェクト。
このオブジェクトを使用して、変更をアニメートしたり、進行中の移行に関する情報を取得したりできます。

使い方

UIKitは、現在のオブジェクトの特性を変更する前、および影響を受けるViewView ControllertraitCollectionDidChange(_ :)メソッドを呼び出す前に、このメソッドを呼び出します。このメソッドの実装者は、newCollectionの値に基づいてインターフェイスを適応させるためにこのメソッドを使用できます。このメソッドの一般的な使用方法は、現在のサイズクラスが変更されたときに高レベルの表示スタイルを変更することです。
たとえば、複数の子View Controllerを管理するコンテナView Controllerは、サイズクラスが変更されたときに画面に表示される子View Controllerの数を変更することがあります。標準のView Controllerは、このメソッドを使用して、管理するビューに対する制約を変更します。行った変更をアニメートするには、提供されているコーディネータオブジェクトを使用します。
独自のオブジェクトでこのメソッドをオーバーライドする場合は、UIKitが特性の変更を関連するプレゼンテーションコントローラおよび任意の子View Controllerに転送できるように、実装のある時点で常にsuperを呼び出します。 View Controllerは、特性変更メッセージを子View Controllerに転送します。プレゼンテーションコントローラは、特性の変更を表示されているビューコントローラに転送します。

参考記事

viewWillTransition(to:) - NSViewController | Apple Developer Documentation
viewWillTransition(to:with:) - UIContentContainer | Apple Developer Documentation
willTransition(to:with:) - UIContentContainer | Apple Developer Documentation
iOSTraining/1-3_Supporting-Multiple-Interface-Orientations.md at master · mixi-inc/iOSTraining

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Flutter実行環境の構築(Android StudioとXcode)

概要

急遽Flutterの検証を行う必要があったので備忘録兼ねて構築からインストールまでを記事にまとめたいと思います。
iOSでの実行も確認したいので、Xcodeでの実行もまとめていますが、メインはAndroid Studioでの環境構築となります。

各種手順

Android Studioと各種ツールのインストール
Xcodeインストール
Flutterインストール
Android Studioに対するFlutterプラグインのインストール
Flutterプロジェクト作成
Flutterの各種初期設定(初回のみ)
Flutterアプリケーション起動確認

Android Studio

インストールまで

Android Studio公式に接続して「Download Android Studio」をクリック

AndroidStudioダウンロード_Mac_01

利用規約の「同意します」にチェックを入れダウンロード
下記のファイルがダウンロードされるので実行

Windows:android-studio-ide-183.5522156-windows
Mac:android-studio-ide-183.5522156-mac.dmg

Windowsの場合
ダウンロードされたexeファイルを実行して「Next」をクリック
install_Windows_01.png

「Next」をクリック
install_Windows_02.png

「Next」をクリック
install_Windows_03.png

「Install」をクリック
install_Windows_04.png

完了したら「Next」をクリック
install_Windows_05.png

Macの場合
上記のファイルを実行して生成される「Android Studio.app」をアプリケーションフォルダに入れた後appを実行する

初期設定

インストールが完了したAndroid Studioを起動する

「Do not import settings」にチェックがついた状態で「OK」をクリック
AndroidStudioダウンロード_Mac_02

「Don't send」をクリック
AndroidStudioダウンロード_Mac_03

「Next」をクリック
AndroidStudioダウンロード_Mac_04

「Custom」にチェックが入っていることを確認して「Next」をクリック
「Standard」の場合、テーマ選択以降は省略される
AndroidStudioダウンロード_Mac_05

好きな方のテーマを洗濯して「Next」をクリック
AndroidStudioダウンロード_Mac_06

※「Custom」の場合表示
インストールするコンポーネントとAndroid SDKのインストール先を指定して「Next」をクリック

Android SDKのインストール先を変更した場合
Flutterはデフォルトインストール先を基にしてAndroid SDKを確認するので、変更した場合は
環境変数ANDROID_HOMEを作成し、パスはAndroid SDK Locationを指定すること
Android_install_ex1.png

※「Custom」の場合表示
「Next」をクリック
Android_install_ex2

インストール構成を確認して「Finish」をクリック
AndroidStudioダウンロード_Mac_07

「Finish」をクリック
AndroidStudioダウンロード_Mac_08

HAXMのインストールに失敗した場合

HAXM installation failedと表示された場合

HAXM公式サイトに接続後、「Downloads」欄のhereをクリック
HAXM_install_01.png

対応するOSのzipをダウンロード
HAXM_install_02.png

zipを解凍後にできたアプリケーションを実行
「続ける」をクリック
Windows: intelhaxm-android.exe
Mac: IntelHAXM_7.5.1.dmg
HAXM_install_03.png

インストール先の変更が必要でなければ「インストール」をクリック
HAXM_install_04.png

インストール後に下記の図のメッセージが表示される場合は機能拡張を許可する必要がある
HAXM_install_05.png

「システム環境設定」の「セキュリティとプライバシー」を開き、ダウンロードしたアプリケーションの実行許可下部にIntel HAXMへの権限を確認する文章が追加されているので「許可」をクリック
HAXM_install_06.png

実行確認

Macの場合
MacでAndroidエミュレータが起動しない(HAXMが起動しない)とき
kextstat | grep intelを実行した場合に何らかの文字列が出力されたらインストールが完了している

HAXMのアンインストール

HAXMで何らかの不具合が発生している場合は一旦アンインストールしてインストールをし直した方が良い

Windowsの場合
Intel Hardware Accelerated Execution Manager(HAXM) インストールとアンインストール
【インストール先もしくはダウンロードしたファイル先】/silent_install.bat -uを実行する

Macの場合
sudo 【インストール先もしくはインストール時にダウンロードしたファイル先】/silent_install.sh -uを実行する

Android Studioの日本語化

Android Studio / IntelliJ IDEA の日本語化と設定
MacでAndroid Studioを日本語化する

Pleiades プラグインに接続して使用しているOSのプラグインをダウンロード
language_change_01.png

ダウンロードされたzipファイルを解凍後、以下のアプリケーションを起動
Mac: 解凍先/pleiades-mac/setup.app
language_change_02.png

「選択」をクリックして先ほどインストールした「【インストール先】/Android Studio/bin/studio64.exe」もしくは「Android Studio.app」をクリックして「開く」を選択
language_change_03.png

設定に問題がないことを確認して「日本語化」をクリック
language_change_04.png

Android Studioを起動して日本語化されていることを確認する

AVDの作成

今回は仮想デバイスを作成したいだけなのでHAXMを使用した高速AVDでの構築を行なっておりません。
高速AVDで仮想デバイスを構築したい場合は下記の記事がとても参考になります。
Windowsで高速AVDを利用するまでの手順をものすごく詳しく解説

「ツール」、「AVDマネージャー」をクリックしてAndroid仮想デバイス・マネージャーを起動後、「仮想デバイスの作成」をクリック
AVD_create_01.png

任意のハードウェアを選択して「次へ」をクリック
AVD_create_02.png

既にシステムイメージのダウンロードが完了している場合は選択するだけで良いが、目的のイメージがインストールされていない場合は
「Download」をクリックし、ダウンロードが完了したら再度選択をして「次へ」をクリックする
AVD_create_03.png

構成を変更する場合は各種変更後、「完了」をクリック
AVD_create_04.png

シミュレータの起動

「ツール」、「AVDマネージャー」をクリックして作成したデバイスの右側にある「▶︎」をクリック
simulator_Android_01.png

ばらくするとOSが起動するので動作を確認し、正常に動くことを確認する
simulator_Android_02.png

完全アンインストール

こちらの記事を書いている最中、Android Studioを壊してしまったので完全アンインストール方法を探していたのですが
Windows、Mac共に削除だけだと消えないそうなのでまとめました。
再インストール前に全ての環境を初期化したい場合は下記を実行すれば全削除を行うことができます。

Windowsの場合

Android studioを完全にアンインストールしたい。

下記フォルダを削除すれば設定を削除して初期化を行う事が可能

# Android SDKのインストール先を変更している場合、下記フォルダではなくANDROID_HOMEのパスを確認する
C:/Users/【ユーザ名】/AppData/Local/Android/sdk
# .AndroidStudioX.Xはバージョン番号によってフォルダ名が異なる
C:/Users/【ユーザ名】/.AndroidStudioX.X
C:/Users/【ユーザ名】/.gradle

Macの場合

MacでAndroidStudioを完全アンインストール

Android SDKを削除する場合のコマンドはrm -r ~/Library/Android*だが、インストール先を変更している場合はANDROID_HOMEのパスを確認すること

Xcode

インストールまで

App Storeを起動してXcodeで検索して「インストール」をクリック
Xcode_install_01.png

インストールが完了後、初めて起動する場合はライセンス規約が出るので「Agree」をクリック
Xcode_install_02.png

シミュレータの起動

Xcodeでの起動

「Xcode」、「Open Developer Tool」、「Simulator」をクリック
simulator_iOS_01.png

しばらくするとOSが起動するので動作を確認し、正常に動くことを確認する
simulator_iOS_02.png

Android Studioでの起動

※Flutterの各種設定が終了後に実行可能
画面右上のデバイス表示部分をクリック後、「Open iOS Simulator」をクリック
しばらくするとXcodeでの起動と同じく、エミュレータが起動する
simulator_iOS_AndroidStudio_01.png

Flutterインストール

SDKインストール

Flutter公式にアクセスして「Get started」をクリック
Flutter_SDK_install_01.png

対応するOSの部分をクリックして以下のファイルをダウンロード
Windows: flutter_windows_v1.5.4-hotfix.2-stable.zip
Mac: flutter_macos_v1.5.4-hotfix.2-stable.zip
Flutter_SDK_install_02.png

Windowsの場合
ダウンロード後に解凍して任意のフォルダに入れる
今回はC:/develop配下に格納した

格納後、環境変数PathC:/develop/flutter/binを追加する

Macの場合
ダウンロード後に解凍して任意のフォルダに入れる
今回は/Users/ユーザフォルダ/develop配下に格納した

格納後、パスを通すために.bash_profileを編集してパスを追加する

# vimで.bash_profileを編集する
vim ~/.bash_profile

# 実行直後にiキーを押して挿入モードに移行後、以下の行を追加
# 追加後にEscキーを押してノーマルモードに戻った後、:wqで保存してvimを終了させる
export PATH="$HOME/develop/flutter/bin:$PATH"

完了後、.bash_profileを再読み込みする

source ~/.bash_profile

実行確認

完了したら正常にパスが通っていることを確認する

flutter --version

# パスが通っていたら以下のような出力が行われる
Flutter 1.5.4-hotfix.2 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 7a4c33425d (9 weeks ago) • 2019-04-29 11:05:24 -0700
Engine • revision 52c7a1e849
Tools • Dart 2.3.0 (build 2.3.0-dev.0.5 a1668566e5)

  ╔════════════════════════════════════════════════════════════════════════════╗
  ║                 Welcome to Flutter! - https://flutter.dev                  ║
  ║                                                                            ║
  ║ The Flutter tool anonymously reports feature usage statistics and crash    ║
  ║ reports to Google in order to help Google contribute improvements to       ║
  ║ Flutter over time.                                                         ║
  ║                                                                            ║
  ║ Read about data we send with crash reports:                                ║
  ║ https://github.com/flutter/flutter/wiki/Flutter-CLI-crash-reporting        ║
  ║                                                                            ║
  ║ See Google's privacy policy:                                               ║
  ║ https://www.google.com/intl/en/policies/privacy/                           ║
  ║                                                                            ║
  ║ Use "flutter config --no-analytics" to disable analytics and crash         ║
  ║ reporting.                                                                 ║
  ╚════════════════════════════════════════════════════════════════════════════╝


Android Studioプラグインインストール

「ファイル」もしくは「Android Studio」から「環境設定」をクリック

「プラグイン」タブをクリック
Flutter_plugin_install_01.png

上の検索欄にFlutterを入力してEnterキーを押すとプラグイン一覧が検索されるのでFlutterをインストール
Flutter i18nは多言語対応プラグイン
Flutter_plugin_install_02.png

インストールが完了したら「Restart IDE」をクリックしてAndroid Studioを再起動
Flutter_plugin_install_03.png

Flutterプロジェクト作成

新規にプロジェクトを作成する場合

「ファイル」、「新規」、「New Flutter Project」をクリック
「Flutter Application」をクリックして「次へ」をクリック
Flutter_Project_01.png

「Flutter SDK path」で先程設定したFlutterのフォルダを指定して「次へ」をクリック
Flutter_Project_02.png

「完了」をクリック
Flutter_Project_03.png

既存のFlutterプロジェクトを開く場合

既存のプロジェクトをインポートして開いた場合、Dart SDK is not configuredと表示されることがある
この場合、FlutterとDartのSDKへのパスが設定されていないのでパスを設定する
Dart SDK is not configured横の「Open Dart settings」をクリック
クリック後、SDKのパスを設定するウィンドウが開かれるのでFlutterDartのSDKに下記を設定する
Flutter: 【インストール先】/flutter
Dart: 【インストール先】/flutter/bin/cache/dart-sdk
SDK_import_01.png

設定後、「OK」をクリックすれば環境チェックが行われる

インポート後にエラーが出る場合

'package get' has not been runと出力される

「表示」、「ツール・ウィンドウ」、「ターミナル」とクリック後に下記コマンドを実行する
※flutterコマンドが見つからないというエラーが発生する場合はFlutterの環境変数に誤りがある

flutter packages get

Waiting for another flutter command to release the startup lock...と表示されて進まない
プロセスがロックされてしまっている
flutterコマンドを打った時に"Waiting for another flutter command to release the startup lock..."が出た時の対処法

【FlutterSDKのパス】/bin/cache/lockfileを削除して再実行
※プロセスが全て終了していることを確認すること

プロジェクト起動後に実行すること(初回のみ)

flutter doctorを実行してセットアップを完了するために必要なプラットフォームの依存関係があるかどうかを確認する
基本的には下記のように、実行するべきコマンドが表示されているのでコピーして実行する

[!] Android toolchain - develop for Android devices (Android SDK version 29.0.0)
    • Android SDK at /Users/【ユーザ名】/Library/Android/sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 29.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
    # エラー個所は✗、警告箇所は!で示される
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses

Xcode installation is incompleteというエラーが発生する

Xcodeをインストールしただけではコマンドラインツールのバージョンが古いままになっている
下記コマンドを実行してコマンドラインツールのバージョンを更新する

[✗] iOS toolchain - develop for iOS devices
    ✗ Xcode installation is incomplete; a full installation is necessary for iOS development.
      Download at: https://developer.apple.com/xcode/download/
      Or install Xcode via the App Store.
      Once installed, run:
        sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

エラーを解消後、再度flutter doctorを実行して全ての項目にが付くことを確認する

アプリケーション実行

Androidでの実行

※Android Studioを実行してプロジェクトを開いていること

Androidデバイスを接続するかエミュレータを起動後、画面右上の「▶︎」をクリックしてFlutterプロジェクトを実行する
Flutter_Project_04.png

iOSでの実行

※Android Studioを実行してプロジェクトを開いていること

Android StudioでiOSのエミュレータを起動後、画面右上の「▶︎」をクリックしてFlutterプロジェクトを実行する

Flutterアップデート

Flutterのバージョンを更新したい場合は以下のコマンドを実行する

flutter upgrade

最後に

Android及びiPhoneの開発経験はあまりないので手順を忘れそうだと思いまとめました
割と突貫で書いているので誤字などあるかもしれません

参考

MacでAndroidエミュレータが起動しない(HAXMが起動しない)とき
Intel Hardware Accelerated Execution Manager(HAXM) インストールとアンインストール
Android Studio / IntelliJ IDEA の日本語化と設定
MacでAndroid Studioを日本語化する
Windowsで高速AVDを利用するまでの手順をものすごく詳しく解説
Android studioを完全にアンインストールしたい。
MacでAndroidStudioを完全アンインストール
flutterコマンドを打った時に"Waiting for another flutter command to release the startup lock..."が出た時の対処法

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

iOS アプリ公開前に AppStore へのリンク URL を知りたい

スクリーンショット 2019-07-04 7.20.43.png

App Store Connect の 「App 情報」内にある Apple ID を使う。

この場合は 886781098 なので、これを ID にした下記の URL で AppStore へリンクできる。

https://apps.apple.com/us/app/id886781098

終わり

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

RealityKitでモーションブラーなどを有効化する

RealityKitのARViewは初期化状態でモーションブラーやノイズがオフになっている。

arView.renderOptions //16

オプションは
https://developer.apple.com/documentation/realitykit/arview/3255316-renderoptions
にある通り、全てdisable~なので有効にする場合はこれを消せば良い。

arView.renderOptions = []

これで全て有効になる。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む