20190828のiOSに関する記事は7件です。

【Xcode】No such module と表示された時の対処

結論

ターゲットを増やしたが、Podfileのターゲットを増やしていなかったため
Podfileのターゲットを増やし、再度 pod install で解消された

普段触らなすぎて、忘れていました。。。

環境

Xcode: 10.1
Swift: 4.2
pod: 1.7.1

手順

Podfileにターゲットを追加

platform :ios, '9.0'
use_frameworks!

def install_pods
 pod 'Firebase/Core'
 pod ....
end

target 'すでに存在してるターゲット名' do
 install_pods
end

# 新しいターゲットを追記し忘れていた
target '新しく追加したターゲット名' do
 install_pods
end

インストール実施

pod install

振り返り

こんなことで3時間ほど費やしてしまった コンチクショー!(振り返ってない)

参考に試したが自分の場合ダメだったこと

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

Xcodeのブレークポイントはドラッグアンドドロップで消せる

この記事について

これまでXcodeのブレークポイントを削除するときは、ブレークポイントを右クリックして「Delete Breakpoint」を選択して消していたのですが、ドラッグアンドドロップで消せることを知って驚いたので記事にしました。

ドラッグアンドドロップで消す

消しているところをスクリーンキャプチャしました。
breakpoint.gif

結論

シュッと消せてHAPPY!

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

[Swift 5]UIButtonに設定したimage(画像)を右側に表示する

UIButtonは、アイコンと文字を同時に設定できますが、デフォルトでは左側に表示されます。
文字を左、アイコンを右側に表示したかったのですが、思ったより単純にはできず、今回以下のように実装しました。

実装

UIButton+.swift
extension UIButton {
    // ボタンのアイコンをLeading(右側)に表示する
    func iconToRight() {
        if #available(iOS 11.0, *) {
            // leadingはiOS 11以降のため
            contentHorizontalAlignment = .leading
        } else {
            contentHorizontalAlignment = .right
        }
        semanticContentAttribute =
            UIApplication.shared.userInterfaceLayoutDirection == .rightToLeft
            ? .forceLeftToRight : .forceRightToLeft
    }
}

使用方法

sampleButton.iconToRight()

もう一つ、トランスフォームを使って反転させる方法もあるようでしたが、今回はsemanticContentAttributeを使う方法を採用しました。

代替方法

button.transform = CGAffineTransform(scaleX: -1.0, y: 1.0)
button.titleLabel?.transform = CGAffineTransform(scaleX: -1.0, y: 1.0)
button.imageView?.transform = CGAffineTransform(scaleX: -1.0, y: 1.0)

参考

https://stackoverflow.com/questions/7100976/how-do-i-put-the-image-on-the-right-side-of-the-text-in-a-uibutton

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

Flutterウィークリー #72

Flutterウィークリーとは?

FlutterファンによるFlutterファンのためのニュースレター
https://flutterweekly.net/

この記事は#72の日本語訳です
https://mailchi.mp/flutterweekly/flutter-weekly-72

※Google翻訳を使って自動翻訳を行っています。翻訳に問題がある箇所を発見しましたら編集リクエストを送っていただければ幸いです。

読み物&チュートリアル

Flutterオンライン調査ソフトウェア

https://google.qualtrics.com/jfe/form/SV_3kiGXYfYOfXUjB3?Source=Twitter&linkId=71914718

Flutterチームが簡単なアンケートに回答して製品を改善できるように支援する

60 Days Of Flutter : Flutterからのメッセンジャーの構築

https://medium.com/@adityadroid/60-days-of-flutter-building-a-messenger-from-scratch-ab2c89e1fd0f


Aditya Gurjarは60日間、完全なFlutterアプリを開発し、プロセスを文書化します。最初の記事はすでに作成されています。

FlutterとCloudinaryを使用して写真日記アプリを作成する9つの最も簡単な手順

https://medium.com/flutter-community/9-easiest-steps-to-build-photo-diary-app-using-flutter-and-cloudinary-8f190faa1441


Promise Nzubechi Amadiによるこの記事に従って、写真ダイアリーアプリを段階的に作成してください。

Flutter CLI:52の非表示サンプル

https://medium.com/flutter-community/flutter-cli-52-hidden-samples-fc90f218a9d0


Nitish Kumar Singhは、 Flutter CLIツールで52の非表示のサンプルプロジェクトを示しています。

Flutterウィジェットのbuild()メソッドが「すべてがウィジェット」であることを証明する方法

https://medium.com/fluttervn/how-build-method-of-flutter-widget-proves-everythings-a-widget-a49b5efc5cbb


Bui Minh Trietは、Containerウィジェットの構築方法の分析を使用して、テーブルの下でウィジェットがどのように機能するかを学習します。

Flutter依存性注入

https://medium.com/flutter-community/dependency-injection-in-flutter-f19fb66a0740


Flutterアプリに依存性注入を実装する方法に関するZubair Rehmanによる優れた記事

思考のFlutter

https://medium.com/flutter-community/thinking-flutter-22f38961f9ba


Pratik Jainは、いくつかの例を使用して新しいウィジェットの設計に取り組む前に、どのように考えるかを分析します。

ビデオ&メディア

カスタムドロワー、ファイリングバグ、データベースの操作(The Boring Flutter Development Show、Ep。27)

https://www.youtube.com/watch?v=SJKrtx759Xk&feature=youtu.be


ボーリングショーのこのエピソードでは、エミリーとエミリーが協力してデータベースをFlutterアプリに追加し、ユーザーがお気に入りの記事を保存したり、パッケージにバグを登録したり、カスタムドロワーメニューの作成を開始できるようにします。

フレアベクトルアニメーション:Zero to Hero

https://www.youtube.com/playlist?list=PLjr4ufdmNA4Jt19RyRQPD7cMF0r0juDs8


Flareを使用してアニメーションを作成する方法を学ぶためのビデオチュートリアルの全リスト

Flutterアニメーション-AnimatedSwitcherを使用した放射状メニュー

https://www.youtube.com/watch?v=1Bz06bLeWHY&feature=youtu.be


Flutter放射状メニューを作成する方法を学ぶ

Flutterカスタムアイコン-自動および手動の方法(アイコンフォントまたはSVG)

https://www.youtube.com/watch?v=qZYqmM3daO0&feature=youtu.be


カスタムアイコンを使用してFlutterにベクターフォントベースのアイコンの新しいセットを追加する方法に関するビデオチュートリアル。

今週のパッケージ

https://www.youtube.com/playlist?list=PL163X1AUpNTGyw4eNVnvIfPl3chAXsReW


「週のパッケージ」を示す毎週成長するプレイリスト、またはさまざまな利用可能なFlutterパッケージの使用方法。

抽象化により開発時間を節約| Flutter抽象化

https://www.youtube.com/watch?v=n2yGl7vJJGM&feature=youtu.be


この抽象化に関するFlutterチュートリアルでは、抽象化が必要な理由、抽象化がどのように役立つか、偽の実装を使用して実際に何時間もの開発時間を節約できるかがわかります。

ライブラリ&コード

aliyigitbireroglu / flutter-peek-and-pop

https://github.com/aliyigitbireroglu/flutter-peek-and-pop

同じ名前のiOS機能に基づくFlutter Peek&Pop実装。

Almoullim / background_location

https://github.com/Almoullim/background_location

AndroidおよびiOS用のFlutterバックグラウンドロケーションプラグイン

form_bloc / packages / flutter_form_bloc

https://github.com/GiancarloCode/form_bloc/tree/master/packages/flutter_form_bloc

Flutter form_blocパッケージでフォームを作成するのに役立ちますフラッターウィジェットを持つパッケージ。

mannprerak2 / nearby_connections

https://github.com/mannprerak2/nearby_connections

近くの接続API用のFlutterプラグイン(Android)

schibsted / tweet_ui

https://github.com/schibsted/tweet_ui

Tweet UIのFlutterパッケージ

fluttercommunity / get_it

https://github.com/fluttercommunity/get_it

インターフェースを具体的な実装から切り離すことができる単純な直接サービスロケーター。

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

Flutterウィークリー #71

Flutterウィークリーとは?

FlutterファンによるFlutterファンのためのニュースレター
https://flutterweekly.net/

この記事は#71の日本語訳です
https://mailchi.mp/flutterweekly/flutter-weekly-71

※Google翻訳を使って自動翻訳を行っています。翻訳に問題がある箇所を発見しましたら編集リクエストを送っていただければ幸いです。

読み物&チュートリアル

Flutter and Graphql-ファイルをアップロードする方法

https://codinglatte.com/posts/flutter/flutter-and-graphql-how-to-upload-files/


GraphQLとFlutterを使用してファイルをアップロードする方法に関するチュートリアル。

Flutterチュートリアル:習慣トラッカーUI

https://cybdom.tech/flutter-tutorial-habit-tracker-ui/


カスタムペインタとベジェカーブを含むUIの作成に関するチュートリアル。

Flutterサノススナップ効果

https://fidev.io/thanos-snap-effect-in-flutter/


MarcinSzałekが説明した画像に適用する楽しい効果。効果の最高の名前:)

Flutter非同期プログラミングのガイド

https://medium.com/@gaspard.merten/a-simple-guide-about-flutter-dart-and-asynchronous-programming-a96d9930136c


Gaspard MertenによるFlutter先物、ストリーム、コンプリーターの紹介。

Flutter Androidの文字Flutter

https://medium.com/flutter-community/android-strings-to-flutter-12a5c307147c


ŁukaszWiśniewskiは、作成する理由と、ライブラリを使用してAndroid xml文字列ファイルをi18n Flutterクラスに変換する方法について説明します。

FlutterとGraphQLを使用したシンプルなアプリケーションの構築

https://medium.com/flutter-community/building-a-simple-application-with-flutter-and-graphql-5786764df102


DanielBerríoBarreraがFlutterでのGraphQLの使用について紹介します。

Flutter —プロバイダーを使用したFirebase Realtime Database CRUD操作

https://medium.com/flutter-community/flutter-firebase-realtime-database-crud-operations-using-provider-c242a01f6a10


Mohamed Hassan Kadriによるプロバイダーライブラリを使用して、Firebaseでcrud操作を処理する方法。

BLoCパターン付きのFlutter BottomNavigationBar

https://medium.com/@lovnicki.sandro/flutter-bottomnavigationbar-with-bloc-pattern-bba6f13d49f3


SandroLovničkiは、BLoCデザインパターンでBottomNavigationBarウィジェットを使用する方法を示します。

バックグラウンドでFlutterを実行するには?

https://medium.com/vrt-digital-studio/flutter-workmanager-81e0cfbd6f6e


Tim Rijckaertは、 Flutterバックグラウンドジョブを定期的にトリガーする必要性をどのように解決したかについて説明します。

Flutterための必須のVSコード拡張機能

https://medium.com/flutter-community/must-have-vs-code-extensions-for-working-with-flutter-e31a421b9c68


Daniele CambiによるFlutter動作するために推奨されるVSコード拡張のキュレーションリスト。

FlutterアプリでColorTweenを使用する

https://medium.com/flutterpub/using-colortween-in-flutter-app-d05a3ebe83f5


Tyagi Priyankaによるこの記事で、ColorTweenを使用してアニメーションを実装する方法を学びます。

Flutter PCゲームをモバイルに

https://rainway.com/blog/2019/08/06/flutter/


Rainwayチームは、 Flutterを使用してモバイルにゲームをストリーミングする方法を説明し、驚くべき結果を出しました。

ビデオ&メディア

CustomPaintを使用したFlutterアニメーションノイズ

https://www.youtube.com/watch?v=-3bRoZ2kbW8&feature=youtu.be


CustomPaintウィジェットを使用してFlutterノイズアニメーションを作成する方法を学びます。

AnimatedPadding(今週のFlutterウィジェット)

https://www.youtube.com/watch?v=PY2m0fhGNz4&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=46


AnimatedPaddingを使用すると、ウィジェットのパディングを動的に変更し、2つの値の間でアニメーション化できます。

より良いコードのためのDart機能:スプレッド、Collection-If、Collection-For

https://www.youtube.com/watch?v=mnaN_6465Gk&feature=youtu.be


このチュートリアルでは、Spreads、Collection-If、およびCollection-Forを実際に使用する方法を示します。

Flutter Animation Tutorial – AnimatedWidgetとAnimatedBuilderによるリファクタリング

https://www.youtube.com/watch?v=o-h_e4b71o8&feature=youtu.be&app=desktop


AnimatedWidgetとAnimatedBuilderを手動アニメーションに適用して、コードをよりクリーンで再利用しやすくします。

ライブラリ&コード

アリアミン/ shopx

https://github.com/Ali-Amin/shopx

MobX状態管理を使用したEコマースFlutterアプリ

asjqkkkk / flutter-todos

https://github.com/asjqkkkk/flutter-todos

包括的で美しいFlutter Todo-Listアプリは、ベストプラクティスプロジェクトでもあります。印象的なドキュメントの栄誉。

dmh2000 / Flutter -GraphqlX

https://github.com/dmh2000/Flutter-GraphqlX

DartとFlutter GraphQLを使用する例

fayeed / flutter_parsed_text:

https://github.com/fayeed/flutter_parsed_text

テキストを解析し、リンクされたテキストウィジェットにするFlutterパッケージ

flutter-ui-challenges / flutter_web_challenge_googlemaps

https://github.com/flutter-ui-challenges/flutter_web_challenge_googlemaps

Google Maps UIの再設計のFlutterチャレンジ。

fluttervn / super_widgets

https://github.com/fluttervn/super_widgets

一般的に一緒に使用される複数のウィジェットを単一のウィジェットに結合する一連のウィジェット。

JideGuru / Flutter FurnitureAppUI:

https://github.com/JideGuru/FlutterFurnitureAppUI


家具アプリUIのFlutter表現

khalidfsh / flutter_localizations_tale

https://github.com/khalidfsh/flutter_localizations_tale


FlutterのI18N機能を示すアプリケーション。

sarbagyastha / flutter_rating_bar

https://github.com/sarbagyastha/flutter_rating_bar

フラッター用のシンプルなレーティングバー。レーティングバーインジケーターも含まれ、レーティングの一部をサポートします。

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

Flutterウィークリー #70

Flutterウィークリーとは?

FlutterファンによるFlutterファンのためのニュースレター
https://flutterweekly.net/

この記事は#70の日本語訳です
https://mailchi.mp/flutterweekly/flutter-weekly-70

※Google翻訳を使って自動翻訳を行っています。翻訳に問題がある箇所を発見しましたら編集リクエストを送っていただければ幸いです。

読み物&チュートリアル

Flutter –ポートレートとランドスケープのレイアウト

https://codingwithjoe.com/flutter-portrait-and-landscape-layouts/


縦向きでも横向きでも、美しく表示できるFlutterフォームの作成方法を調べてください。

「刷新」 Flutterボトムシート

https://medium.com/flutter-community/revamped-flutter-bottom-sheet-61662dc2983


Sumeet Rukejaは、独自のボトムシートをゼロから作成して、さらにカスタマイズできるようにする方法を説明します。

Flutterはよさそうですが、痛いです。ここに私の不満があります。

https://medium.com/@bernaferrari/from-android-dev-flutter-looks-good-but-is-painful-here-are-my-frustrations-with-it-81b4bbe739f8


ベルナルド・フェラーリはFlutterを試し、その過程で発見したいくつかの問題を共有しています。

プロバイダーパッケージの詳細

https://medium.com/flutter-nyc/a-closer-look-at-the-provider-package-993922d3a5a5


プロバイダーパッケージをよりよく理解するためのMartin Rybakの記事

Flare& Flutterした水追跡アプリの構築

https://medium.com/2dimensions/building-a-water-tracking-app-with-flare-flutter-f03de436dba3


FlutterアプリからFlareアニメーションを処理する方法を理解するための優れたチュートリアル。

Flutter —デバッグUIチートシート

https://medium.com/@louagejulien/flutter-debugging-ui-cheat-sheet-18a7b09dd468


Julien LouageによってキュレーションされたUIのデバッグフラグのリスト

Flutterとムーア

https://medium.com/flutterpub/flutter-and-moor-c2b2e03b1fbe


Aseem Wangooによるこの記事では、Moorを使用してFlutterデータベースの操作を簡素化する方法を学びます。

Flutterとコマンドライン—ラブストーリー

https://medium.com/flutter-community/flutter-and-the-command-line-a-love-story-a3648ef2411


GonçaloPalmaは、コマンドラインオプションをレビューしてFlutterます。

Flutter Rx Dartを使用したインスタント画像検索

https://medium.com/@sagarsuri56/instant-image-search-using-rxdart-in-flutter-9eedd4b53364


Rx Dartを使用して画像検索アプリを作成する方法を説明するSagar Suri。

Dialog ManagerでFlutterダイアログを管理する

https://medium.com/flutter-community/manager-your-flutter-dialogs-with-a-dialog-manager-1e862529523a


Dane Mackierは、中央のダイアログマネージャーを使用してアプリでダイアログを処理する方法を示します。

プロバイダー—およびそのタイプ

https://medium.com/flutterpub/provider-and-its-types-dda8463586e7


Aseem Wangooによるプロバイダーパッケージの紹介

Flutterを使用したテキスト読み上げ

https://medium.com/@arend.kuehle/text-to-speech-with-flutter-8d959dad40a8


FlutterでTTSを使用する際のArendKühleによるヒント。

レンタル代理店向けのFlutterデータ入力フォームアプリの作成

https://medium.com/flutter-community/writing-a-flutter-data-entry-form-app-for-a-rental-agency-e5a7dab20596


Steve Zwartによるこの記事でFlutterフォームの取り扱いを学ぶ

カールとDart楽しみ-マーキーデセルス:クリスの洞察力

http://sellsbrothers.com/fun-with-curl-and-dart


Chris Sellは、Curlでリクエストを生成し、それらをDartコードに変換する方法を説明します。

Flutter次のアプリを作成する理由

https://skillsmatter.com/skillscasts/13223-why-i-m-building-my-next-app-in-flutter


アンジェラ・ユーによるFlutterの紹介

ビデオ&メディア

Flutterフォーム検証を追加し、Firebase Authエラーメッセージのユーザーに警告する方法

https://www.youtube.com/watch?v=bSUdYUw4Jjs


サインアップとサインインフォームにカスタムフォーム検証を追加し、エラーメッセージを処理する方法

AnimatedPositioned( Flutter Widget of the Week)

https://www.youtube.com/watch?v=hC3s2YdtWt8&list=PLjxrf2q8roU23XGwz3Km7sQZFTdB996iG&index=45


AnimatedPositionedは、指定された位置が変更されるたびに、指定された期間にわたって子の位置を自動的に移行します

Flutterグリッターアニメーションを作成する(The Boring Flutter Development Show、Ep。27)

https://www.youtube.com/watch?v=OTwIfUFZmVw&list=PLjxrf2q8roU3ahJVrSgAnPjzkpGmL9Czl&index=36&t=12s&linkId=71420748


この退屈なショーのエピソードでは、アンドリューはゲストメアリーと一緒に、 Flutterキラキラと輝くアニメーションを作成するというアイデアを探求します。

Flutterアニメーションチュートリアル-基本を理解し、簡単にアニメーション化する

https://www.youtube.com/watch?v=txLvvlooT20&feature=youtu.be


カスタムアニメーションの作成方法を学ぶ

Flutter Bloc-自動ルックアップ-v0.20(以降)、更新されたチュートリアル

https://www.youtube.com/watch?v=_vOpPuVfmiU&feature=youtu.be


このチュートリアルでは、BLoCライブラリを使用して状態を管理する最新のベストプラクティスと方法を学習します。

Flutter File Upload-画像を選択、切り取り、クラウドに保存

https://www.youtube.com/watch?v=HCmAwk2fnZc&feature=youtu.be


FlutterとFirebase Cloud Storageでファイルをアップロードしてください。画像を選択、切り取り、クラウドストレージバケットにアップロードする方法を学ぶ

Flutter Live: Flutter Blocパッケージの学習|私と一緒に学びましょう!

https://www.youtube.com/watch?v=eAiCPl3yk9A&feature=youtu.be


BLoCの使用方法を示すロバートブランヘイジのキャスト

Flutterミニマルデザイン-栄養アプリ

https://www.youtube.com/watch?v=K1uH_SN4X0w


別のデザインチャレンジ、今回は栄養アプリ

エリック・ザイデル( Flutter共同設立者)へのインタビュー

https://www.youtube.com/watch?time_continue=287&v=AMOs1cuNhDY


フルテランドのメンバーがエリック・ザイデルにインタビューします(ポルトガル語での紹介ですが、インタビューは英語です)

Material Themer- Flutter開発ツールの情報ビデオ

https://www.youtube.com/watch?v=o_xs5sXEaqg&feature=youtu.be


Material Themerアプリを使用すると、ThemeDataを視覚的に作成し、ワンクリックでコードを生成できます

ライブラリ&コード

Flutter Enhancement Suite

https://plugins.jetbrains.com/plugin/12693-flutter-enhancement-suite


Flutter作業をこれまで以上に簡単にするための重要なプラグイン!

AubergineDevelopers / flutter_scale

https://github.com/AubergineDevelopers/flutter_scale

Flutterパッケージを使用すると、Scaleウィジェットを簡単に統合できます。

csells / flutter_mazegen

https://github.com/csells/flutter_mazegen

Flutter迷路を生成するために古いC ++を移動する

florent37 / Flutter -ShapeOfView

https://github.com/florent37/Flutter-ShapeOfView

フラッターウィジェットにカスタムシェイプを追加し、Material Design 2を準備

mjohnsullivan / ffi

https://github.com/mjohnsullivan/ffi

DartからCライブラリを呼び出す方法を示す一連の簡単な例。

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

AppDelegateについて

目的

iOSアプリを開発する上で、当たり前のように使うAppDelegateクラスについての理解を深める。また、ストーリーボードを使用しない場合のAppDelegateへの記述にも触れる。

ソースコード

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

  var window: UIWindow?

  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    self.window = UIWindow(frame: UIScreen.main.bounds)
    self.window?.rootViewController = UINavigationController(rootViewController: <表示したいViewControllerを入れる>) 
    self.window?.makeKeyAndVisible()

    return true
  }
  func applicationWillResignActive(application: UIApplication) {
        println("アプリ閉じそうな時に呼ばれる")
    }

    func applicationDidEnterBackground(application: UIApplication) {
        println("アプリを閉じた時に呼ばれる")
    }

    func applicationWillEnterForeground(application: UIApplication) {
        println("アプリを開きそうな時に呼ばれる")
    }

    func applicationDidBecomeActive(application: UIApplication) {
        println("アプリを開いた時に呼ばれる")
    }

    func applicationWillTerminate(application: UIApplication) {
        println("フリックしてアプリを終了させた時に呼ばれる")
    }
}

@UIApplicationMainとは

#import
#import "AppDelegate.h"

int main(int argc, char *argv[]) {
  @autoreleasepool {
  //AppDelegateのクラス名を指定
    return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
  }
}

@UIApplicationとは上記のコードを省略するための記述であり、この記述のおかげで上記のmain関数を自動実装してくれます。ちなみにこのmain関数というのはアプリケーションを起動した時点で、はじめに実行する関数であり、ここでAppDelegateのクラス名を指定しているため、アプリ起動時などにAppDelegateが実行されるようになっている。

AppDelegate.swiftとは

xcodeでプロジェクトをcreateした時点で自動生成されるファイルの一つであり、アプリ全体のライフタイムイベントを管理するためにAppDelegateクラスが記述されている。
そしてそのAppDelegateクラスはUIResponderを継承して、UIApplicationDelegateプロトコルを適合している。

//上記省略

func applicationWillResignActive(application: UIApplication) {
        println("アプリ閉じそうな時に呼ばれる")
    }

    func applicationDidEnterBackground(application: UIApplication) {
        println("アプリを閉じた時に呼ばれる")
    }

    func applicationWillEnterForeground(application: UIApplication) {
        println("アプリを開きそうな時に呼ばれる")
    }

    func applicationDidBecomeActive(application: UIApplication) {
        println("アプリを開いた時に呼ばれる")
    }

    func applicationWillTerminate(application: UIApplication) {
        println("フリックしてアプリを終了させた時に呼ばれる")
    }

上記のようにAppDelegateクラスにはいくつかのメソッドがファイル生成時に定義されており、何かしらの動作がアプリに行われた際に各メソッドが実行されるようになっている。

UIResponderクラスとは

UIResponder(のインスタンス)は、UIKitアプリのイベント処理バックボーン(裏側の処理)を構成しています。つまりUIResponderクラスはイベントの処理を管理するクラスであり、UIViewやUIApplicationなどのスーパークラスになります。そのためタッチイベントやモーションイベントをこのクラスが管理しています。そのため、UIViewを継承しているUITextFieldやUITextViewはUIResponderのプロパティやメソッド使えることになります。

UIApplicationDelegateプロトコルとは

UIApplicationDelegateプロトコルとは、アプリの共有動作を管理するために使用する一連のメソッドを宣言しているメソッドである。つまりこのプロトコルは、シングルトンのUIApplicationオブジェクトのデリゲートによって実装されるメソッドを宣言し、それらのメソッドは、起動完了時・終了時、メモリの低下、重要な変更の発生など、アプリケーション実行中に置けるキーイベント(重要なイベント)を実行します。

application(_:didFinishLaunchingWithOptions:)とは

関数UIApplicationDelegateに含まれているメソッドのapplication(_:didFinishingWithOptions:)は起動プロセスがほぼ完了し、アプリを実行する準備がほぼ整ったことをデリゲートに伝えます。このメソッドを使用する場合、最後にBool値を返す必要がある。アプリがURLリソースを処理できないかユーザーアクティビティを続行できない場合はfalse、それ以外の場合はtrueを返します。リモート通知の結果としてアプリが起動された場合は戻り値は無視されます。

application(_:didFinishLaunchingWithOptions:)の中の三行について

//ウィンドウをインスタンス化する
self.window = UIWindow(frame: UIScreen.main.bounds)

//メインストーリーボードをロードし、その最初のView Controllerをインスタンス化します。
self.window?.rootViewController = UINavigationController(rootViewController: <表示したいViewContorollerをいれる>)

//新しいView ControllerをウィンドウのrootViewControllerプロパティに割り当ててから、ウィンドウを表示状態にします。
self.window?.makeKeyAndVisible()

上記のコードのように記されている通り、アプリケーションのメインストーリーボードファイルを作成し、それを情報プロパティリストファイルでメインストーリーボードファイルとして識別すると、iOSはいくつかのセットアップタスクを実行することができます。つまりは、起動後最初のViewを表示する動きをしているということです。

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