Bo2SS

Bo2SS

《虾票票》からiOS入門(2)——iOSの簡単な歴史とプロジェクトの作成

《虾票票》から iOS 入門

先週は第 1 部について話し、《虾票票》アプリを作ることを明確にしました~

今日は第 2 部に進み、iOS の発展の歴史から話し始め、その後 Xcode を使用して iOS プロジェクトを作成し、プロジェクト内でよく使われる設定について紹介します。

iOS の簡単な歴史#

iPhone 1 世代の誕生#

iPhone が登場する前、Apple の 2 つのスター製品は iMac と iPod でしたが、その時ジョブズは「iMac を小さくする」か「iPod を大きくする」ことで、携帯電話を作ることができないかと考えていました。ジョブズはこのタスクを iMac チームと iPod チームの 2 つの製品ラインに分けましたが、最後に成功したのは誰でしょう?

  • iMac の強力な macOS システムに基づき、最初の iPhone は非常に強力な性能を持っていました;
  • そして、みんながさまざまな携帯電話のキーボードをどう作るかを考えている時、ジョブズは「なぜキーボードをソフトウェアとして扱わないのか?」と考えていました。これにより、欲しいキーボードを持つことができ、さらに大きな画面と軽量化を実現しました。

2007 年の Apple の発表会で、ジョブズは3 つのフレーズを繰り返し言いました:An iPod、A Phone、An Internet Comunicate、An iPod、A Phone...

iPhone の誕生

結局、彼は 3 つの機能を 1 つのデバイスに統合しました。これが私たちのiPhone 1 世代です!

当時、彼はノートパソコンの概念を提唱したアラン・ケイが言った言葉にも触れました:

ソフトウェアに真剣な人々は、自分たちのハードウェアを作るべきだ。——1970

ソフトウェアに熱心な人々は、自分たちのハードウェアを作るべきだ。——1970

30 年以上後の 2007 年、Apple もそれを実現しました。その後、実際に Microsoft もそれを実現しました。同時に、Apple は自社のハードウェアのすべての詳細を把握しており、真のソフトウェアとハードウェアの統合を実現しました。

バージョンの歴史#

  • 最初の iOS バージョンは iPhone OS と呼ばれ、4 番目のメジャーバージョンで iOS と呼ばれるようになりました。この時、iPod OS、iPad OS、iPhone OS が統合されました;
  • iOS 13 では、iPad のいくつかの独自の機能、例えば分割画面、Apple Pencil のサポート、ファイルシステムなどにより、iPad OS が独立しました;
  • 最近の iOS 15 まで続きます。

参考:iOS バージョンの歴史——Wiki

システムの特徴#

主流の Android システムと比較して、iOS の特徴は明らかです:

  • 機種が少なく、ユーザーも相対的に少ない
  • エコシステムが閉じており、自由や選択肢が少なく、安全性、使いやすさ、ソフトウェアの更新の迅速性などが増えています
  • 高級市場をターゲットにしており、ブランドのプレミアム感は人によって異なります

これは 2017 年に Apple が行った宣伝広告で、自社の特徴を強調し、やや誇張した方法で Apple の利点を表現しています。興味がある方はぜひご覧ください。

Switch To iPhone - Commercial by Apple——Youtube

iOS プロジェクトの作成#

さて、話を本題に戻しましょう~

新しいプロジェクトの作成#

すべての IDE に似て、新しいプロジェクトを作成するのはこの数ステップだけです:

三歩で

  1. 新しい Xcode プロジェクトを作成
  2. iOS-App を選択し、Next をクリック
  3. プロジェクトに関する情報を入力
    1. Team は空白のままで大丈夫で、基本的には実機デバッグやアプリの公開時に必要です
    2. Organization Identifier は一般的に com.organization_name の形式です
    3. このプロジェクトは OC 言語に基づいており、Interface、Life Cycle、Language はすでに固定されています
    4. 2 つのチェックボックスは一時的に無視しても大丈夫です
    5. Next をクリック

その後、パスを選択すれば新しいプロジェクトの作成が完了します。

次に、プロジェクト内でよく使われる 3 つの設定:アプリアイコン、起動画面関連、Info.plist の一般的な属性について紹介します。

アプリアイコン#

image

新しいプロジェクトを作成すると、デフォルトで 1 つのファイルが存在し、そこにアイコンをドラッグするだけで済みます。

image

  • 赤い矢印に注目
    • プロジェクトを作成すると、Images.xcassets ファイルが自動的に生成されます。このファイルは多くの画像セットを作成し、画像を保存するために使用されます
    • 自分の画像を AppIcon という画像セットにドラッグすることで、アプリアイコンを設定できます
    • 自分のアプリアイコンをどのようにデザインするかは、個人の発揮次第です~
  • PS
    • 豊富なアイコン素材が欲しい場合は、iconfont—— アリババのアイコンライブラリを見てみてください
    • 注意深いあなたは、画像セットにさまざまな比率のアイコンがあることに気づくかもしれません。これらはPrepoアプリ(App Store にあります)を使用して生成できます
    • iOS 10.3 以降、Apple は動的な置き換え機能を追加しました。実際、私たちは双 11 のような祝日でこれを体験できます。アプリアイコンが自動的に切り替わり、アプリを再インストールする必要がありません
      • 手順:info.plist を設定 => 画像を放り込む => setAlternateIconName メソッドを呼び出す
      • 後で info.plist ファイルについて言及します
    • アプリのバッジについて、例えば WeChat アプリに表示される未読メッセージ数は、applicationIconBadgeNumber 属性を設定するだけで済みます

起動画面関連#

アプリが起動時に表示する画面は、実際には「起動画面 + スプラッシュスクリーン」で構成されています。なぜ 2 つの画面が必要なのでしょうか?

1)まず、起動画面について話しましょう。別名 Launch Screen:

新しいプロジェクトを作成すると、デフォルトで LaunchScreen.storyboard ファイルが生成されます。ストーリーボードという名前の通り、実際には絵画ボードのようなもので、いくつかの UIKit コンポーネントを追加して自分の起動画面を作成できます(UIKit コンポーネントの説明については、このシリーズを引き続きご覧ください~)

image

同様に赤い矢印に注目。実際には、私は 3 枚の画像(アイコン + アート文字 + アート文字)を使用してこのような起動画面を構成しました。

しかし、この起動画面には 1 つの特徴があります。それは表示が非常に速いため、制御が難しいことです。したがって、起動画面が消えた後、アプリの内容がまだ読み込まれていないという状況が発生する可能性があり、ユーザーに空の画面を表示することになります。

2)したがって、スプラッシュスクリーンが登場しました:

それは、アプリを起動した後にユーザーに空の画面を表示しないようにするために使用されます。

これは人為的に追加されたもので、現在のアプリの実際の使用から見ると、このスプラッシュスクリーンは広告の表示、ブランドのプロモーションのための強力なツールとして拡張されています!

そのため、時には逆効果になることもあり、アプリの初期化時にもう 1 つの画面を読み込む必要がある場合があります。例えば、最近広告を取り下げた淘宝アプリでは、以前は淘宝の起動が遅いのは自分の携帯電話の問題だと思っていました。

《Apple 人間工学ガイドライン》には次のように書かれています:

https://developer.apple.com/design/human-interface-guidelines/ios/overview/themes/

できるだけ、スプラッシュスクリーンやその他のスタートアップ体験を表示することを避けてください

できるだけスプラッシュスクリーンやその他の余分なスタートアップ体験を表示することを避けてください

しかし、各企業の文化は大きく異なり、Microsoft はこの点でアプリがスプラッシュスクリーンを通じてブランド効果を拡大することを奨励していると聞いています~

Info.plist の一般的な属性#

最後の部分は、実際にはプロジェクト内で非常に重要なファイルであり、自動的に生成されます。主にアプリの基本設定を提供します。

image

赤い矢印に注目。このファイルは本質的に XML ファイルであり、以下にいくつかの一般的な属性を紹介します。

1)Bundle identifier

2)Bundle name

  • アプリのインストールパッケージ名で、新しいプロジェクト作成時に設定された Product Name がデフォルトです

3)プライバシー関連

  • アクセス権に関連する属性、例えばアルバムやカメラへのアクセスなど
    • ⚠️:その Value 値は具体的な用途を明確に記述する必要があり、「使用… 権限」と単純に書くのではなく、そうしないと公開時に審査で拒否される可能性があります

PS:上記の属性をコードで取得したい場合は、以下のコードを使用して辞書を取得し、Key に基づいて対応する Value を取得できます。

NSDictionary *dic = [[NSBundle mainBundle] infoDictionary];
  • OC 言語でのメソッド呼び出しの方法は独特です
    • 角括弧 [] はメソッド呼び出しを示します
    • [NSBundle mainBundle] は NSBundle クラスのクラスメソッドを呼び出し、インスタンスオブジェクトを返します
    • その後、インスタンスオブジェクトを使用して infoDictionary メソッドを呼び出し、辞書オブジェクトを返します
  • 具体的な構文については、Objective-C 関数—— 易百教程を参照してください

来週またお会いしましょう👋#

次回は以下について話します:

  • iOS のシステムアーキテクチャ
  • UIKit ライブラリの重要なメンバー
    • UIView、UIViewController およびそれぞれの継承関係
    • 各コンポーネントの基本的な使用法と特徴

❗️今すぐあなたの最初のアプリを作成してみてください!アプリアイコンを追加し、起動画面を設定し、関連する info.plist 属性を変更しましょう~

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。