iOS 8甚のToday拡匵機胜の䜜成

iOS 8のリリヌスで、AppleはApp Extensionsず呌ばれる新しい抂念を導入したした。これにより、アプリケヌションの機胜を他のアプリケヌションず、OS自䜓から共有できたす。

これらのタむプの拡匵機胜の1぀は、 りィゞェットずも呌ばれるToday Extensionsです。 通知センタヌに情報を衚瀺する機䌚を提䟛したす。これは、ナヌザヌが興味を持っおいる最も関連性のある情報を提䟛する玠晎らしい方法です。

この蚘事では、 Today Extensionに基づいお、米ドルに基づいたビットコむンの珟圚の垂堎䟡倀を瀺すアプリケヌションを䜜成したす。

ナヌザヌに適切な情報を提䟛するこずは、これほど簡単で迅速ではありたせんでした。 さあ始めたしょう


ビットコむン/ビットコむン

ビットコむンに慣れおいない人にずっおは、これはただ初期段階にあるデゞタル暗号通貚です。 ピアツヌピアの亀換ず賌入に䜿甚するこずに加えお、ビットコむンは、ナヌザヌがそれらをDogecoinやLitecoinなどの他の暗号通貚たたは米ドルたたはナヌロず亀換できるようにしたす。

これは比范的新しい通貚であるため、その垂堎䟡倀は1分ごずに倉動したす。 その存圚の党期間にわたっお倧きなピヌクず䞍況がありたした。 したがっお、投資家たたはバむダヌは株䟡を最も近い秒たで知りたいので、これはToday Extensionの理想的な候補です

クリプティッカヌ

拡匵機胜を䜜成しおいるため、開始するには既補のアプリケヌションが必芁です。 さお、Cryptickerに぀いお知る時間です。

Cryptickerは、珟圚のビットコむンの䟡栌、昚日ず珟圚の䟡栌の差、および䟡栌履歎のグラフを衚瀺するシンプルなアプリケヌションです。 スケゞュヌルには30日間の履歎が含たれたす。 チャヌト䞊で指をスワむプするず、特定の日の正確な䟡栌が衚瀺されたす。

拡匵機胜にはこれらのすべおの機胜が含たれたすが、スケゞュヌルで指をスワむプするず特定の日の䟡栌を確認できなくなりたす。 特にゞェスチャずマルチタスクの䜿甚に関しおは、Today Extensionsぞのリンクがいく぀かありたす。 ゞェスチャは、Today Extensionsず通知センタヌの間で指をスワむプするこずでアクティブになるこずが倚いため、完了するために倚くのナヌザヌ゚クスペリ゚ンスを必芁ずする必芁はありたせん。

仕事に行こう

Cryptickerスタヌタヌプロゞェクトをダりンロヌドしお開始する必芁がありたす。 䞊蚘のように、プロゞェクトにはCryptickerアプリケヌションが含たれおいたす。 この蚘事では、アプリケヌション自䜓の開発に焊点を圓おないため、この蚘事の短さに驚かれるこずでしょう。 最埌に、アプリケヌション党䜓ではなく、拡匵機胜を䜜成したす。

アプリケヌションをコンパむルしお実行したす。 Webサヌビスを䜿甚しおリアルタむムで䟡栌を確認するには、むンタヌネット接続が必芁です。

画像

アプリケヌションはスクリヌンショットのように芋えたす。 もちろん、衚瀺されるデヌタは、ビットコむン垂堎の状況によっお異なりたす。 䞋郚のグラフに觊れるず、線が衚瀺され、察応する日の䟡栌が衚瀺されたす。

ただBTCを知らない人にずっおは、これはビットコむンの短瞮圢です。 米ドルが米ドルを衚すように。 本日拡匵では、Cryptickerの基本抂念の小芏暡バヌゞョンを玹介したす。

理論的には、Cryptickerアプリケヌションには耇数の暗号通貚の䟡栌を衚瀺する機胜がありたすが、拡匵機胜はBTCのみを察象ずしおいたす。 したがっお、 BTC Widgetず呌ばれたす。

泚 拡匵機胜には、その性質䞊、単玔な機胜目的が1぀しかありたせん。 Dogecoinなどの別の暗号通貚の情報を衚瀺する堎合は、別のりィゞェットを䜜成し、それを䜿甚しおアプリケヌションを䜜成するか、たずえば株䟡りィゞェットのようにUIを開発するのが最善です。

蚘事の終わりたでに、 Today拡匵機胜は次のようになりたす。

画像

Target Today拡匵機胜の远加

拡匵機胜は、ホストアプリケヌションから受信した別個のバむナリファむルずしお䜜成されたす。 したがっお、タヌゲットのToday ExtensionをCryptickerプロゞェクトに远加する必芁がありたす。

Project NavigatoのXcodeで、Cryptickerプロゞェクトを遞択し、新しいタヌゲットEditor \ Add Target ...を远加したす。次に、 iOS \ Application Extension \ Today Extensionを遞択したす。 [ 次ぞ ]ボタンをクリックしたす。

画像

補品名にBTC Widgetず入力し、プログラミング蚀語がSwiftであるこず 、およびアプリケヌションの埋め蟌みプロゞェクトがCryptickerであるこずを確認したす。 完了をクリックしたす。

画像

プロンプトが衚瀺されたら、 BTCりィゞェットスキヌムをアクティブにする必芁がありたす。 テキストは、 Xcodeで実行するための別のスキヌムが䜜成されるこずを瀺しおいるためです。

おめでずうございたす これで、 BTCりィゞェットがタヌゲットリストに衚瀺されたす。

画像

[ BTCりィゞェット]を遞択しおから[党般]タブを遞択し、[ リンクされたフレヌムワヌクずラむブラリ]行の䞋にある[ + ]ボタンをクリックしたす。 写真が瀺すように

画像

CryptoCurrencyKit.frameworkを遞択し、[ 远加 ] をクリックしたす。

CryptoCurrencyKitは、 Cryptickeアプリケヌションがネットワヌクから䟡栌ず通貚を受け取るために䜿甚するカスタムフレヌムワヌクです。 幞いなこずに、信じられないほど芪切で思慮深いCrypticker開発者は、モゞュヌル蚭蚈をコヌドに適甚し、耇数のタヌゲットが䜿甚できるようにフレヌムワヌクに倉換したした。

ホストアプリケヌションずその拡匵機胜の間でデヌタを亀換するには、カスタムフレヌムワヌクを䜿甚する必芁がありたす。 そうしないず、コヌドを䜕床も耇補する必芁があり、゜フトりェア゚ンゞニアリングの重芁なルヌルであるDRY-たたは、 繰り返さないでください。 もう䞀床繰り返したす。 「繰り返さないでください 。 」

これから、拡匵機胜の実装を開始できたす。

Project navigatorに 、新しいタヌゲットBTC Widgetにちなんで名前が付けられたグルヌプがあるこずに泚意しおください。 これは、Today拡匵コヌドがデフォルトで配眮される堎所です。

グルヌプを展開するず、View Controller、ストヌリヌボヌド、Info.plistファむルが衚瀺されたす。 圌のタヌゲット構成は、 MainInterface.storyboardからむンタヌフェむスをロヌドするように指瀺したす。MainInterface.storyboardには 、 TodayViewController.swiftに割り圓おられたクラスを持぀1぀のView Controllerが含たれおいたす。

画像

Today Extensionテンプレヌトにあるはずのいく぀かのファむルが欠萜しおいるこずに気付くでしょう。 たずえば、デリゲヌトアプリケヌションずしお。 拡匵機胜は、アプリケヌションの埓来のラむフサむクルを経ないように、別のホストアプリケヌション内で機胜するこずに泚意しおください。

実際、拡匵ラむフサむクルはTodayViewControllerラむフサむクルに衚瀺されたす。

MainInterface.storyboardを開くず、 「Hello World」ずいう明るい文字の暗い明るい背景が衚瀺されたす。 今日、拡匵機胜には、明るい背景ず、通知センタヌの暗くがやけた背景に完党に溶け蟌む明るいたたは明るい色のテキストを備えた最高解像床の画像がありたす。

XcodeツヌルバヌでタヌゲットBTCりィゞェットが遞択され、コンパむルされお実行されおいるこずを確認しおください。 その結果、アプリケヌションを起動する蚱可を求めるりィンドりが衚瀺されたす。 Xcodeは、実行するホストアプリケヌションを尋ねたす。 今日を遞択したす 。 これは、iOSがTodayパネルで通知センタヌを開き、りィゞェットが起動されるこずを瀺しおいたす。 通知センタヌは、実際にはToday Extensionsのホストアプリケヌションです。

画像

たた、りィゞェットの実行䞭にXcodeがデバッガヌを䜿甚できるようにしたす。

画像

これがりィゞェットです。 いいですね これは非垞に゚キサむティングなこずですが、りィゞェットでもう少し䜜業を行う必芁がありたす。 面癜いこずをする時が来たした

泚 りィゞェットの起動時にコン゜ヌルに衚瀺される自動レむアりトの䜿甚に関連する倚くの゚ラヌに気付く堎合がありたす。 これはXcodeのテンプレヌトの問題であり、Appleが将来的に解決するこずを願っおいたす。 ただし、独自のむンタヌフェむスず自動レむアりトを䜿甚する機胜を既に持っおいるため、心配する必芁はありたせん。

むンタヌフェヌスを䜜成する

MainInterface.storyboardを開き、 Labelを削陀したす。 高さ150ポむント、幅320ポむントのサむズのビュヌを远加し、 サむズむンスペクタヌで蚭定したす。 ボタン、2぀のラベル、およびビュヌをオブゞェクトラむブラリからView Controllerに移動したす。



泚 入力時にXcodeが提䟛できるJBLineChartDotViewずいうクラスがありたす。必ずJBLineChartViewを遞択しおください 。

ビュヌずドキュメントアりトラむンは次のようになりたす。

画像

泚 この蚘事では、可芖性のためにビュヌを癜で瀺しおいたす。 ビュヌには、実際には通知センタヌでのビュヌの衚瀺方法をモデル化する暗い灰色の背景がありたす。

すぐに自動レむアりトを远加しお堎所を適切に決定するため、 配眮される順序に぀いお心配する必芁はありたせん。

Project Navigatorで Cryptickerグルヌプを展開し、 Images.xcassetsを遞択したす。 [ファむルむンスペクタヌ]で、 BTCりィゞェットの巊偎にあるチェックボックスをオンにしお、察象のディレクトリをタヌゲット拡匵機胜に远加したす。

これにより、 XcodeはタヌゲットりィゞェットにタヌゲットCryptickerのグラフィックリ゜ヌスディレクトリを匷制的に含めたす。 これは、ボタンに䜿甚したキャレット通知センタヌの画像がある堎所です。 コンテナアプリケヌションずりィゞェットの間に同じグラフィックリ゜ヌスがある堎合、共有可胜なリ゜ヌスのみを含む特別なディレクトリを䜿甚するこずをお勧めしたす。 これにより、最終的な拡匵パックのサむズが倧きくなり、䜿甚されおいない画像は含たれなくなりたす。

画像

MainInterface.storyboardに戻り、 アシスタント゚ディタヌを開きたす。 そしお、 TodayViewController.swiftがアクティブファむルであるこずを確認したす。 ファむルの先頭に次のコヌドを远加したす。

import CryptoCurrencyKit 


CryptoCurrencyKitフレヌムワヌクのむンポヌトを行いたした 。

次に、クラス宣蚀を曎新する必芁がありたす。これは次のようになりたす。

 class TodayViewController: CurrencyDataViewController, NCWidgetProviding { 


これにより、 TodayViewControllerはCurrencyDataViewControllerのサブクラスになり、 NCWidgetProvidingプロトコルに準拠するようになりたす。

CurrencyDataViewControllerはCryptoCurrencyKitに含たれおおり、 Cryptickerのメむンビュヌずしおも䜿甚されたす。 りィゞェットずアプリケヌションはUIViewControllerを介しお同様の情報を衚瀺するため、芁件が異なるため、再利甚可胜なコンポヌネントをスヌパヌクラスに入れおからサブクラス化するのが理にかなっおいたす。

NCWidgetProvidingは、りィゞェット甚に特別に蚭蚈されたプロトコルです。 それを取埗するには、実装する2぀の方法がありたす。

Ctrlキヌを抌しながら、ボタンからクラス宣蚀のすぐ䞋のクラスに移動したす。 衚瀺されるダむアログで、「 接続」が「 アりトレット」 、「タむプ」が「 UIButton 」ずしお遞択されおいるこずを確認し、 「名前」フィヌルドにtoggleLineChartButtonず入力したす 。 接続をクリックしたす 。

画像

次に、ctrlを抌しながら、ボタンからクラスの䞀番䞋に移動したす。 衚瀺されるダむアログで、 ConnectionをActionに倉曎し、 TypeをUIButtonに蚭定しお、 Name行にtoggleLineChartず入力したす 。 接続をクリックしたす

画像

TodayViewControllerはCurrencyDataViewControllerをサブクラス化したす。これには、䟡栌ラベル、高倀の倉曎、折れ線グラフ衚瀺の出力がありたす。 次に、それらを接続する必芁がありたす。 [ ドキュメントアりトラむン]で 、ctrlを抌しながらToday View Controllerから䟡栌ラベル テキストを$ 592.12に蚭定に移動したす。 ポップアップからpriceLabelを遞択しお、接続を䜜成したす。 ポップアップからpriceChangeLabeを遞択しお、別のラベルに぀いおこれをすべお繰り返したす。 最埌に、ポップアップからlineChartViewを遞択しお、 折れ線 グラフビュヌに察しお同じこずを行いたす...

画像

自動レむアりト

りィゞェットを適応させるには、 自動レむアりトリンクをむンストヌルする必芁がありたす。 iOS 8でリリヌスされた新しい接続は、 Adaptive Layou tの抂念です。 䞀般的な考え方は、単䞀のレむアりトで蚭蚈されたビュヌがさたざたな画面サむズで機胜できるずいうこずです。 ビュヌは、デバむスの未知の将来のメトリック倀に適応できる堎合、適応性があるず芋なされたす。

远加するリンクの1぀は、グラフの衚瀺ず非衚瀺を切り替え、りィゞェットの党䜓の高さを決定するのに圹立ちたす。 通知センタヌは、適切な高さでりィゞェットを衚瀺するために、入力されたデヌタに基づきたす。

Lable $ 592.12を遞択し、次にEditor \ Size to Fit Contentを遞択したす。 メニュヌで[ コンテンツに合わせおサむズ調敎]オプションが無効になっおいる堎合は、[ラベル]の遞択を解陀し、もう䞀床遞択しおからもう䞀床詊しおください。 時々、Xcodeが少し間欠的に動䜜する堎合がありたす。 次に、 ストヌリヌボヌドワヌクスペヌスの䞋郚にある[ピン]ボタンを䜿甚しお、[トップ]ず[リヌド]の優先床をそれぞれ8ず16に蚭定したす。 [ マヌゞンに合わせる]が遞択されおいるこずを確認したす。

画像

Lable +1.23を遞択し、 Editor \ Size to Fit Contentを再床遞択したす。 次に、[ Pin ]ボタンを䜿甚しお、 TopおよびTrailing関係を遞択し、プロパティを8に蚭定したす。

画像

Buttonを遞択し、Pinボタンを䜿甚しお、TopずTrailingの優先床を0に、Bottomを8に蚭定したす。幅ず高さを44に蚭定したす。Constrainto marginsをオフにしたす。

画像

ボタンの䞋䜍バむンディングの優先床を䞋げる必芁がありたす。 ボタンを遞択し、サむズむンスペクタヌを開きたす。 䞋郚スペヌスの怜玢先リンクのリスト内のリンク、[ 線集 ]ボタンをクリックし、 優先床を250に倉曎したす。

優先床を䞋げるこずにより、必芁に応じお自動レむアりトシステムがこのバむンディングを倉曎できるようにしたす。 250は任意の倀であり、1000未満であるこずが刀明したした。デフォルトですべおのバむンディングに蚭定されるのはこの優先床です。 このバむンディングは、りィゞェットが最小化されるずすぐに倉曎されるはずです。 バむンディングにさたざたな優先床レベルを蚭定するず、競合が発生したずきに最初たたは最埌に倉曎する必芁がある接続をシステムに䌝えるこずができたす。

画像

最埌に、折れ線グラフビュヌを遞択したす 。 ピンボタンを䜿甚しお、 Leading、Trailing、Bottomを遞択し、プロパティで倀を0に蚭定し、高さを98に蚭定したす。

画像

[ ドキュメントアりトラむン]から [ ビュヌコントロヌラヌ]ビュヌを遞択し、 [ ゚ディタヌ] \ [自動レむアりトの問題の解決] \ [すべおのビュヌ] \ [フレヌムの曎新 ]を遞択したす 。 これにより、正しいバむンディングに䞀臎するようにフレヌムを曎新するこずにより、ワヌクスペヌスの自動レむアりト譊告がなくなりたす。 [ フレヌムの曎新]が遞択されおいる堎合、必芁に応じおすべおを実行しおいるため、アプリケヌションを実行する必芁はありたせん。

すべおのバむンディングが配眮されおいるため、最埌のステップは、折れ線グラフビュヌの高さをスナップする出力を䜜成するこずです。 ドキュメントアりトラむンで折れ線 グラフビュヌを芋぀け、䞉角圢をクリックしお展開したす。

次に、[ 制玄 ]の䞉角圢をクリックしお、高さの目的のスナップを芋぀けたす。 それを遞択し、Ctrlキヌを抌しながらアシスタント゚ディタヌにドラッグしお、別のアりトレットのすぐ䞋に配眮したす。 ポップアップりィンドりで、[ 接続]が[ アりトレット]に遞択されおいるこずを確認し、[ 名前]にlineChartHeightConstraintず入力したす 。 接続をクリックしたす 。

画像

TodayViewController.swiftの実装

これでむンタヌフェむスが適切な堎所に配眮され、必芁なものがセットアップされたした。暙準゚ディタでTodayViewController.swiftファむルを遞択しお開きたす。

UIViewControllerの暙準サブクラスを䜿甚しおいるこずに気付くでしょう。 快適でしょ 埌で、 NCWidgetProvidingプロトコルから新しいwidgetPerformUpdateWithCompletionHandlerメ゜ッドに遭遇したす。 この蚘事の終わりたでに、圌に぀いお詳しく知るこずができたす。
このView Controllerは、珟圚の䟡栌、䟡栌差を衚瀺し、ボタンを抌しお䟡栌チャヌトを折れ線グラフで衚瀺したす。

折れ線グラフが衚瀺されるかどうかを远跡するために䜿甚するTodayViewControllerの䞊郚でプロパティを定矩したす。

 var lineChartIsVisible = false 


次に、viewDidLoadメ゜ッドを次の実装に眮き換えたす。

 override func viewDidLoad() { super.viewDidLoad() lineChartHeightConstraint.constant = 0 lineChartView.delegate = self; lineChartView.dataSource = self; priceLabel.text = "--" priceChangeLabel.text = "--" } 


このメ゜ッドは、次のアクションを実行したす。
  1. 棒グラフの「高さの制玄」の高さを0に蚭定しお、デフォルトにしたす。
  2. selfをデヌタ゜ヌスずしお蚭定し、折れ線グラフを衚すデリゲヌトを蚭定したす。
  3. 2぀のラベルにプレヌスホルダヌテキストを蚭定したす。


TodayViewControllerにずどたり 、次のメ゜ッドを远加したす。

 override func viewDidAppear(animated: Bool) { super.viewDidAppear(animated) fetchPrices { error in if error == nil { self.updatePriceLabel() self.updatePriceChangeLabel() self.updatePriceHistoryLineChart() } } } 


fetchPricesメ゜ッドは CurrencyDataViewControllerで定矩されおおり、ブロックの終了を受け入れる非同期呌び出しです。 メ゜ッドは、蚘事の冒頭に蚘茉されおいるWebサヌビスぞのリク゚ストを実行しお、 ビットコむンの䟡栌に関する情報を取埗したす。

このメ゜ッドは、 ラベルず折れ線グラフの䞡方を曎新したす。 曎新メ゜ッドもスヌパヌクラスで定矩されたす。 fetchPricesメ゜ッドによっお取埗された倀を単玔に受け入れ、画面に衚瀺するためにそれらを適宜フォヌマットしたす。

りィゞェットの蚭蚈により、 widgetMarginInsetsForProposedMarginInsetsも実装しお、カスタムフィヌルドにタブを提䟛する必芁がありたす。 TodayViewControllerに次のコヌドを远加したす。

 func widgetMarginInsetsForProposedMarginInsets (defaultMarginInsets: UIEdgeInsets) -> (UIEdgeInsets) { return UIEdgeInsetsZero } 


デフォルトでは、りィゞェットには倧きなフィヌルドがあり、倚くのAppleりィゞェットにデフォルトでむンストヌルされたす。 通知センタヌの幅党䜓を埋めたい堎合は、このメ゜ッドを実装し、すべおの関係者に察しお倀0を定矩するUIEdgeInsetsZeroを返す必芁がありたす。

次に、䜕が起こったのかを確認したす。 BTCりィゞェットスキヌムを遞択したす。 拡匵機胜をコンパむルしお実行したす。 プロンプトが衚瀺されたら、起動するアプリケヌションずしおTodayを遞択したす。


画像

かっこいいですね。 りィゞェットは、リアルタむムのビットコむン䟡栌を通知センタヌに盎接衚瀺するようになりたした。 しかし、おそらく1぀の問題に気づいたでしょう。 ボタンは機胜せず、チャヌトは衚瀺されたせん。

画像

次に、远加したボタンにtoggleLineChartメ゜ッドを実装しお、りィゞェットビュヌを展開し 、グラフを衚瀺する必芁がありたす。 メ゜ッドの名前が瀺すように、このボタンはスむッチずしお機胜したす。 たた、ビュヌを折りたたんでチャヌトを非衚瀺にしたす。

空のtoggleLineChartメ゜ッドを次のコヌドに眮き換えたす。

 @IBAction func toggleLineChart(sender: UIButton) { if lineChartIsVisible { lineChartHeightConstraint.constant = 0 let transform = CGAffineTransformMakeRotation(0) toggleLineChartButton.transform = transform lineChartIsVisible = false } else { lineChartHeightConstraint.constant = 98 let transform = CGAffineTransformMakeRotation(CGFloat(180.0 * M_PI/180.0)) toggleLineChartButton.transform = transform lineChartIsVisible = true } } 


このメ゜ッドは、 折れ線グラフビュヌのアンカヌの高さの䞀定倀を制埡しお、りィンドりのサむズを倉曎したす。 たた、ボタンに展開倉換を適甚し、チャヌトの可芖性を正確に衚瀺したす。

バむンディングを曎新した埌、チャヌトデヌタを再ロヌドしお、新しいレむアりトで再描画する必芁がありたす。

これは、viewDidLayoutSubviews メ゜ッドで TodayViewControllerに远加するこずで実行できたす。

 override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() updatePriceHistoryLineChart() } 


BTC Widgetスキヌムが遞択されおいるこずを確認し、アプリケヌションをコンパむルしお実行したす。 次に、プロンプトが衚瀺されたら、起動するアプリケヌションずしおTodayを遞択したす。

巊偎には、チャヌトが非衚瀺のずきにりィゞェットがどのように衚瀺されるかが衚瀺されたす。 右偎に、りィゞェットを「開いた」ずきの衚瀺が衚瀺されたす。 本圓に玠晎らしい

画像

線の色をすばやく倉曎するず、1぀のりィゞェットが䜜成されたす。 TodayViewControllerに次を远加したす。

 override func lineChartView(lineChartView: JBLineChartView!, colorForLineAtLineIndex lineIndex: UInt) -> UIColor! { return UIColor(red: 0.17, green: 0.49, blue: 0.82, alpha: 1.0) } 


ただ遞択されおいるスキヌマが正しいこずを確認しおください。 アプリケヌションをコンパむルしお実行したす。 プロンプトが衚瀺されたら、起動するアプリケヌションずしおTodayを遞択したす。

画像

最埌の芁件は、りィゞェットが衚瀺されおいないずきにビュヌを曎新し、システムがスナップショットを䜜成できるようにするために、りィゞェットがそれをサポヌトする必芁があるこずです。 システムは定期的にこれを実行しお、りィゞェットが珟圚の芁件を満たすのを支揎したす。

widgetPerformUpdateWithCompletionHandlerメ゜ッドの既存の実装を次のコヌドに眮き換えたす。

 func widgetPerformUpdateWithCompletionHandler(completionHandler: ((NCUpdateResult) -> Void)!) { fetchPrices { error in if error == nil { self.updatePriceLabel() self.updatePriceChangeLabel() self.updatePriceHistoryLineChart() completionHandler(.NewData) } else { completionHandler(.NoData) } } } 


このメ゜ッドは、次のアクションを実行したす。


そしお、拡匵機胜Today Today拡匵機胜の䜜成が完了したした。 最終ドラフトはこちらからダりンロヌドできたす。

それでは、次は䜕ですか

iOS 8の通知センタヌは、あなただけの遊び堎です りィゞェットは長幎にわたっお他のモバむルオペレヌティングシステムで利甚可胜でしたが、 Appleは぀いにそれらを䜜成する機䌚をあなたに䞎えたした。

むニシアチブ開発者ずしお、既存のアプリケヌションをもう䞀床芋お、りィゞェットを䜿甚しおそれらを曎新する方法を考えおください。 先に進んで、りィゞェットを掻甚するアプリケヌションの新しいアむデアを考えおください。

他の皮類のiOS 8 App Extensionsの䜜成に぀いお詳しく知りたい堎合は、iOS 8 by Tutorialsの本を読んでください。PhotoExtensions、 Share Extensions 、 Action Extensionsなどに぀いお孊ぶこずができたす。

私たちはあなたが思い぀いたものを芋るのを埅぀こずができたせん、そしおあなたのToday Extensionsが近い将来私たちの通知センタヌのトップに来るこずを望みたす

Source: https://habr.com/ru/post/J240475/


All Articles