CocoaとCocoa Touch:MacとiOSアプリを構築する方法

開示: あなたのサポートはサイトの運営を維持するのに役立ちます!このページで推奨する一部のサービスについては、紹介料を稼ぎます.


Cocoaは、Mac OS Xオペレーティングシステムにネイティブな開発APIです。 Cocoa Touchは、iOSの密接に関連する類似のプラットフォームです。 Objective-Cで記述され、各オペレーティングシステムに対する一種の「トップレイヤー」として機能します。.

Cocoaは、アプリケーションプラットフォームまたはアプリケーション開発フレームワークと考えることができますが、LinuxまたはWindows環境の場合よりもオペレーティングシステムに統合されています。.

API、オペレーティングシステム、および(もちろん)Apple自身のハードウェア間のこの緊密な統合は、シームレスな開発環境を提供し、「Appleの方法」で実行することを目的としています.

ココアの歴史

ココアは文字通りCで始まる.

1980年代初頭、Brad CoxとTom Loveという名前の2人の開発者は、オブジェクト指向をCプログラミング言語に追加しようとしましたが、当時はOOPをサポートしていませんでした。.

彼らの解決策は、プレーンコードのコンパイル可能なCコードにSmalltalkのような追加機能を備えたCコードをレンダリングするプリプロセッサを作成することでした。 (Smalltalkは初期のオブジェクト指向言語でした。)

このプリプロセッサはすぐに本格的な言語拡張に発展し、Objective-Cとして知られるようになりました。スティーブジョブズが1985年にアップルから解雇された後に設立したNeXTソフトウェアは、その作成者からObjective-Cのライセンスを取得し、いくつかの開発フレームワークの基礎として使用しました。.

これらは、NeXTSTEPおよびOpenStepアプリケーションプラットフォームを形成し、NeXTは80年代および90年代を通じて販売しました。.

Appleは1996年にNeXTを買収し、Steve JobsはCEOとして復帰しました。 NeXTSTEPフレームワークがMacオペレーティングシステムに登場.

Appleはすでに廃止された別のプロジェクトのためにCocoaという名前を商標登録していた。 Appleの新しいバージョンのフレームワークに商標登録されたブランド名をすばやく付けるために、彼らはそれをCocoaと呼んだ.

Cocoaは、1990年代後半からAppleのすべてのオペレーティングシステムの一部であり、それ以降、OSや新しいデバイスプラットフォームとともに進化してきました.

ココアは何をしますか?

ココアは多くのことを行いますが、おおまかに言ってこれらは4つのカテゴリに分類されます。

  • Objective-Cの拡張標準ライブラリとして機能し、Objective-Cの設計には存在しない最新のコンピューティング言語の豊富なオブジェクトと機能をサポートします。.

  • 統一されたユーザーインターフェイスとユーザーエクスペリエンスの提供.

  • アプリケーションが他のアプリケーション、サービス、およびデバイス機能にアクセスすることを許可する.

  • 特定のアーキテクチャおよびデータ管理パターンを奨励する.

これらの幅広い設計目標は、いくつかの「フレームワーク」に実装されています。この用語は少し混乱するかもしれません。現代の用語では、Cocoaは複数のモジュールまたはライブラリを備えた単一のフレームワークに似ています。しかし、Appleはこれらの各ライブラリを「フレームワーク」と呼んでいます。

これらの機能的な目標のそれぞれについて少し調べ、さまざまなCocoaフレームワークがそれらをどのように達成するかを見てみましょう.

標準ライブラリとしてのCocoa

Objective-Cには標準ライブラリがあります。 Cocoa環境では、標準ライブラリとランタイムは実際にはCocoaによって提供されます。さらに、一連の拡張言語機能がFoundation Kitによって提供され、実際には、事実上の標準ライブラリとして機能します。.

これは、Objective-Cで通常利用できるよりも高度な言語機能を提供します。これには、一般的に使用されるオブジェクトのタイプ(数値、日付、文字列、URL、正規表現、エラーメッセージ)の幅広い基本クラスが含まれます.

このFoundation Kitフレームワークは、Objective-Cで記述されたアプリに不可欠です。ただし、Appleが新しいSwift開発言語を宣伝しているため、Appleプラットフォームでのアプリ開発はObjective-Cから遠ざかっています。.

Swiftは、Foundation Kitによって追加された多くの最新の言語機能をネイティブで提供しますが、Swift中心の将来においてFoundationとObjective-Cが果たす役割は不明です。.

UI / UXインターフェースとしてのCocoa

Cocoaのこの側面は、アプリ開発者にとっておそらく最も重要であろう.

CocoaのOS Xバージョンでは、ユーザーエクスペリエンスAPIはAppKitと呼ばれるフレームワークによって提供されます。 Cocoa Touch for iOSでは、これはUIKitと呼ばれます.

どちらの場合も、これらはグラフィカル要素、ユーザーインターフェイスコントロール、ウィンドウとパネルの管理、マルチタッチインターフェイス、およびユーザーとシステム間の相互作用のその他すべての詳細を提供します.

AppKitとUIKitを使用することで、アプリケーションの外観がAppleシステムにネイティブになり、入力(ジェスチャー、クリック、動き)に「正しい」方法で応答します.

CocoaとCocoa Touchの大きな違いは、AppKitとUIKitの違いです。 Appleがプラットフォーム間でユーザーエクスペリエンスを統一するために取り組んだのと同じように、デスクトップMacとは異なる方法でiPhoneを操作します.

わずかに異なるGUI要素に加えて、UIKitにはコンパスの方向、GPS、加速度計(デバイスの動き)、タッチスクリーンなどのサポートが含まれます.

オペレーティングシステムインターフェイスとしてのCocoa

Appleアプリは、他のアプリやオペレーティングシステムサービスとやり取りできる必要もあります.

チャットアプリで電話番号をクリックして電話をかけられるようにするには、アプリが相互に通信できる必要があります.

音楽編集アプリでマイクから音を拾ってスピーカーで再生できるようにするには、アプリがオペレーティングシステムサービスとやり取りできる必要があります.

Cocoaは、アプリとサービスへのアクセスを提供するフレームワークの完全に長いリストを提供します。これらにより、アプリはスタンドアロンの実行可能ファイルであるだけでなく、統合されたエコシステム内に存在して動作することができます.

建築家としてのココア

Cocoaは2つの重要なアーキテクチャパターンをサポートしています。1つはアプリケーション内、もう1つはアプリケーションがそれ自体の外部で通信する方法です。.

Cocoaは、Model-View-Controllerアーキテクチャのパラダイムを念頭に置いて作成されており、すべてのレベルでMVC開発をサポートしています.

ビューは、AppKitまたはUIKitフレームワークによって実装されます。コントローラーモジュールは、Foundation Kitに組み込まれたクラスのファミリーを通じてサポートされます。モデル、およびデータ永続化レイヤーへの必要な接続は、Core Dataと呼ばれる別のフレームワークによって処理されます.

この設計は、iOSおよびOS Xアプリケーション内のModel-View-Controllerアーキテクチャを奨励します(一部は施行と言うかもしれません)。.

さまざまなアプリケーション間、およびアプリケーションとサービス間でも、さまざまなフレームワークが本質的にサービス指向の方法で対話を仲介します。これにより、アプリ同士の統合がより簡単かつ安全になり、堅牢で復元力のあるアプリケーションエコシステムが促進されます.

ココアのリソース

オンライン

チュートリアル

  • CocoaおよびCocoa Touchの基本的なプログラミング概念

  • Cocoaのコーディングガイドラインの概要

  • ココアDev Central

  • 初心者のためのCocoaによるMac OS Xのプログラミング.

ツール

  • Cocoaコントロール:iOSおよびOS X用のオープンソースUIコンポーネント.

  • Cocoaポッド:Cocoaプロジェクトのパッケージマネージャー.

コミュニティと継続的な学習

  • CocoaHeads:CocoaおよびCocoa Touchの開発に特化したローカルのミーティングおよびディスカッショングループの世界的なネットワーク.

  • ココアサブレディット.

  • Cocoaを使用した迅速な開発:MacおよびiOS App Store向けの開発

  • OS X向けのCocoaプログラミング:Big Nerd Ranchガイド

  • Objective-CでCocoaを学ぶ

  • ライのココアチュートリアル

  • Cocoa(開発者リファレンス)

  • ココアのデザインパターン.

その他のOS XおよびiOS開発リソース

CocoaまたはCocoa Touchを真空で使用することはできません。これは、Xcode、Objective-C、およびSwiftを含む、より大きなApple App開発環境の一部です。これらのさまざまなツールとテクノロジーが連携して、開発エコシステムを形成します.

Xcode

Xcodeは、OS XおよびiOSアプリケーションを構築するために必要な統合開発環境(IDE)です。 Swift、Cocoa、Apple App Store、およびより大きなAppleエコシステムと緊密に統合されています.

Xcodeについてのチュートリアルは、Appleのすべての一般的な開発リソースで説明されているため、それほど多くありません。ただし、すばらしいリソースの1つは、このXcodeチュートリアルです。Xcodeの新しいバージョンがリリースされるたびに定期的に更新されます。.

Objective-C

  • Objective-Cについて:Apple Developer Centerの入門チュートリアル

  • Objective-Cプログラミング

  • Objective-Cプログラミング:Big Nerd Ranchガイド.

Objective-Cリソースのより完全なリストもあります.

迅速

  • Swiftプログラミング言語:公式Appleガイド

  • スウィフトプログラミング:ビッグオタクランチガイド:テーマに関する決定的な本.

Swiftリソースの完全なリストもあります.

一般的なアップル開発リソース

Appleプラットフォーム向けの開発に関する情報とリソースの最初の場所は、Apple Developerサイトです。.

MacとiOSの開発に関する優れた本の多くは、Big Nerd Ranchによるものです。特定のトピックに関する彼らの本は上で述べられており、あなたはまた、高度なMac OS XプログラミングとiOSプログラミングに関する彼らの本をチェックするべきです。.

その他の優れた一般リソース:

  • Ray Wenderlichチュートリアル:Appleがプラットフォームを更新したときに、以前のチュートリアルに戻って更新する、比較的数少ないプロバイダーの1つ.

  • YouTubeのAppleプログラミングチャンネル:公式ではありませんが、非常に役立ちます.

  • WeHeartSwift:名目はSwiftですが、このサイトはOS XとiOS開発のすべての側面をカバーしています.

  • NSHipster:「Objective-C、Swift、Cocoaで見落としがちな部分」に関するチュートリアルが多数掲載された、MacおよびiOS開発に関する人気の高いブログ。彼らはまた、彼らの報道において非常に意見があり、それはおそらく強みです.

  • ObjC.io:iOSおよびOS X開発のための高度なテクニックと実践に関する書籍と記事.

結論…

CocoaとCocoa Touchは、MacおよびiOS向けのネイティブアプリ開発の基盤です。.

iOSの場合、HTML5とJSを使用して非ネイティブモバイルアプリを作成する方法は他にもありますが、これは必ずしも期待どおりに機能するとは限りません。.

次の大きなiPhoneアプリを構築したい場合、またはOS Xとうまく統合してユーザーの期待に応えるMacアプリを作成したい場合は、CocoaとCocoa Touchを深く掘り下げる必要があります。ネイティブアプリ開発の場合、実際には代替はありません.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me