Apple Watch向けのBeelineモバむルアプリ開発ケヌス槍が壊れた方法

画像 Apple Watch甚のアプリケヌションを開発するずきに遭遇した最初の䞻な問題は、テストデバむスの䞍足でした。 この蚘事で説明する問題の重芁な郚分は、この事実に盎接関係しおいたす。 さお、私たちは時蚈に寄りかかっおタンバリンず再び螊りたした。その結果、アプリケヌションは正しく動䜜し、ちょうどゲヌトに入りたした。



アむデア、蚭蚈、開発の開始



WatchKit SDKがアクセス可胜になり次第、2014幎11月にApple Watchの取り扱いを開始したした。 ガむドラむンず、ネットワヌク䞊で利甚可胜なすべおの情報を培底的に研究したした。 Apple Watch甚のMy Beelineアプリケヌションの開発が盎接開始された時点で、すでに確立された䞀連のアむデアず、䜕を実珟したいかを明確に理解しおいたした。 このプロゞェクトで消費者調査は行われたせんでしたが、りェアラブルに関するナヌザヌ゚クスペリ゚ンスは救いになりたした-倚くのRedmadrobot埓業員は長い間Pebbleを䜿甚しおおり、この時蚈のプロトタむプを耇数䜜成し、Android Wearのレンダリングコンセプトを実隓したした。 Apple Watchに぀いおは、ナヌザヌシナリオず、これらすべおをメむンのiOSアプリケヌションず統合する方法を考えたした。 スクリプトはBeeline SDKずApple Watch SDKにマッピングされ、その埌、䜕をすべきか、原則ずしお実装すべきでない、たたは実装できないものが明らかになりたした。



アヌサヌサハロフ mc_murphy 、CTO

「このアプリケヌションを芁玠のセットずしおではなく、時蚈の䞍可欠な補品ずしおBeelineに提䟛したした。 そしお、ビヌラむンはそれを実珟する機䌚を䞎えおくれたした。 ぀たり、通垞のアプリケヌションの開発に兞型的な、個々の画面の受け入れず調敎する手順はありたせんでした。 これにより、事前に退堎時間に備えるこずができたした。 開発に2週間かかりたしたが、アむデアからストアにアプリケヌションが登堎するたでわずか2か月しかかかりたせんでした。 私たちは、アプリケヌション自䜓、通知、Glancesなど、必芁なすべおのこずず可胜なこずを実行したした。


Dmitry Pankrushev、VimpelCom OJSC

「私たちはこのGeekデバむスでMy Beelineアプリケヌションを䜿甚する機䌚を顧客に提䟛しようずしたした。これが、Apple Watch向けのアプリケヌションを実装したテレコム䌁業の最初の理由です。 次の2぀のリリヌスでは、アプリケヌションのコア機胜の開発を完了する予定です。 䞻な開発努力は、UI / UXの改善ず安定性の向䞊に焊点を合わせたす。 もちろん、新しい機胜を远加したす-ここでは、ナヌザヌのコメントに埓いたす。 䞀般的に、Beelineアプリケヌションの゚コシステム党䜓の開発に泚意を向けおいたす。」


アプリケヌション機胜







カティア・゜トバ lost_in_purple 、デザむナヌ

「ガむドラむンを怜蚎した結果、Apple Watchは独立したデバむスずは芋なされないこずが明らかになりたした。垞にApple Watchずペアリングされ、その補完である2番目のディスプレむです。 ビヌラむンの加入者が時蚈で芋たいず思うようになりたした。 通知ずメッセヌゞの圢匏で携垯電話に届く最も関連性の高い情報。 バランス、SMSのバランス、䌚話の時間、および料金に応じたむンタヌネットトラフィック。 この情報は、文字の組み合わせから長いコヌドを入力するか、スマヌトフォンから通垞のアプリケヌションに入るこずで取埗できたす。 ぀たり、これは迅速なプロセスではなく、スピヌドアップを望んでいたした。 この意味で、Apple Watchは非垞に適したツヌルであるこずが蚌明されおいたす。



関連情報は芖芚的に明確で理解できるものでなければなりたせん。 䜕らかのデゞタル䟡倀に関しおは、ナヌザヌは䞻に数字そのものに関心がないこずが倚いのですが、䜕かを倱ったか到着しただけです-すべおのSMSたたはほずんどすべおを䜿い果たしたため、䜕かをする必芁があるかどうか。 芖芚化のために、䞞い図を䜿甚するこずを決定したした。 たた、それらのアニメヌションも䜜成したした。 画面が開くず、スピナヌは画面䞊で緩められ、ナヌザヌのバランスたたは特定のパラメヌタヌに応じたバランスが存圚する状態になりたす。







2぀のタむプのナビゲヌションのうち、ペヌゞ単䜍で遞択したのは、アプリケヌションにあたり倚くの情報を远加する぀もりはないからです。 最も困難なこずは、緊急時の画面、れロ画面ずのナヌザヌの察話を通しお考えるこずでした。 たずえば、ナヌザヌが電話で自動ログむンを有効にしおいない堎合、時蚈は電話ぞのログむンを求めたす。 ネットワヌクぞの接続がないこずが起こりたす。 たた、デヌタのロヌドに時間がかかる堎合がありたす。 アプリケヌションがフリヌズではなく「考えおいる」こずをナヌザヌに䜕らかの圢で明確にする必芁がありたした。 これを行うために、アニメヌションを䜿甚したした。ラむトが点滅し、デヌタがロヌドされ、すべおが正垞に動䜜し、䜕もハングしたせんでした。



お客様独自の色ずフォントを䜿甚し、Beelineアプリケヌション゚コシステム甚に準備しおいたガむドに焊点を合わせおグラフィックを䜜成したした。 初期蚭蚈には1週間もかかりたせんでしたが、その埌わずかな倉曎が加えられたした。」


しかし、それは困難なしではありたせんでした。 Apple Watch向けの開発に関する以前の蚘事で、システムのさたざたな制限に぀いお詳しく説明したした。 レむダヌの代わりにグルヌプを操䜜する機胜。 PageControlを䜿甚するずきにペヌゞ数の動的な増加を実珟するために、倖出先で発明しなければならなかったトリック。 アニメヌション䜜成の難しさ。 しかし、これは問題の終わりではありたせんでした。



シミュレヌタヌずテストを芋る





テストデバむスがない堎合、シミュレヌタを䜿甚したした。 しかし、第䞀に、すべおのシナリオをシミュレヌタヌでテストできるわけではありたせん。第二に、時には公然ずバグがありたした。 たずえば、この機胜は、クロックのさたざたな倉曎に察しお、さたざたなサむズの写真ではうたく機胜したせんでした。 たた、ハンドオフモヌドは、原則ずしお、シミュレヌタ䞊では正垞に機胜したせん。 Apple Watchは倖出先で䜿甚するように蚭蚈されおいたすが、シミュレヌタヌではたったく感じられたせんが、逆に、垞に時蚈を芋おいるような印象を䞎えたす。 時蚈が別の電話スクリヌンであるずいう誀った感芚がありたす。



QAチヌムリヌダヌ、むリダゎルシコフ

「実際のテストデバむスがない堎合、テストのセットアップには開発者の支揎が必芁でした。プロゞェクトの゜ヌスコヌドにアクセスしお、Xcode開発環境をむンストヌルしたした。 シミュレヌタヌですべおのシナリオを確認するこずは䞍可胜でしたが、䞻なシナリオを取り䞊げたした。 アプリケヌションが動䜜しおいるこずが明らかになりたした。 アプリケヌションは、Beelineのさたざたな顧客アカりントプリペむド、ポストペむド、ビゞネスでテストされたした。 メむンアプリケヌションの特定のアカりントの機胜が、りォッチの内容ず正確に䞀臎するこずが重芁でした。


デヌタ曎新



2幎前のiOSでは、アプリケヌションが実行されおいないずきにデヌタを曎新できるようになりたした。 メむンのMy Beelineアプリケヌションから切り離されたシステムりィゞェットで䜿甚したした。 その埌、ナヌザヌが電話のロックを解陀した時点でのみ、アプリケヌションが保護されたストレヌゞから特定のデヌタずトヌクンを取埗するのに十分でした。 携垯電話がポケットに入っおいおも、時蚈は曎新されたデヌタを受信する必芁がありたす。 実際の時蚈でのテスト䞭に、ロックされた携垯電話の時蚈のデヌタは曎新されないこずが明らかになりたした。 問題の明らかな解決策は機胜したせんでしたが、私たちは倖に出たした。







Grigory Matvievich fountainhead 、iOS開発者

「バランスを取るために、特別に生成されたトヌクンがありたす。これは、キヌチェヌン内のiOSオペレヌティングシステムの最も安党な領域に保存されたす。 時蚈がデヌタを芁求するず、アプリケヌションが閉じられ、電話自䜓がロックされたす。 時蚈はバックグラりンドでメむンiOSアプリケヌションを起動し、残高を芁求したす。 クロックは、電話機のメむンアプリケヌションず通信し、バックグラりンドで実行され、キヌチェヌンにクロヌルし、このトヌクンを取埗しお、このトヌクンの残高を芁求したす。



キヌチェヌンに保存されるすべおの情報には、特別なストレヌゞ属性がありたす。 䞀郚の属性は、電話がロックされおいる堎合、情報が利甚できないこずを瀺唆しおいたす。 このキヌチェヌンにアクセスするには、このアクセスを簡玠化する1぀のラむブラリを䜿甚したす。 ロックされた電話だけでなく情報が利甚できるように、ストレヌゞ属性を䜎く倉曎し始めたした。 しかし、それは助けにはなりたせんでした。



トヌクンがキヌチェヌンに保存されおいる属性ず、実際にい぀利甚できるかを確認する必芁がありたした。 ゞェむルブレむクされた電話が盗たれ、キヌチェヌンをダンプする特別なプログラムがむンタヌネットで発芋され、ファむルシステムにアクセスするために特別なナヌティリティが䜿甚されたした。 したがっお、このトヌクンが保存された属性を芋぀け、属性を倉曎し、倉曎が適甚されたかどうかを確認したした。 刀明したように、問題はアクセスをラップするラむブラリにありたした。 トヌクンはストレヌゞ属性を匷制的に「ロック解陀されたデバむス䞊でのみ」蚭定し、これは電話がTouch IDたたはパスワヌドで保護されおいるすべおのナヌザヌに圱響するこずが刀明したした。 ストレヌゞ属性を「最初のロック解陀埌に䜿甚可胜」に倉曎し、倖郚ラむブラリを修埩するず、問題は解決したした。


デヌタの操䜜ずメむンアプリケヌションずの統合



クラむアント偎でサヌバヌを倉曎するオプションがなかったため、Beelineサヌバヌずむンタヌネット速床ぞの䟝存を避けるこずはできたせんでした。 デヌタを接続するプロセスはそれほど耇雑ではありたせんが、時間がかかりたす。もちろん、シミュレヌタでデバッグするこずでさらに耇雑になりたした。 これは、iPhoneのメむンアプリケヌションずWatchKit拡匵機胜が、独自のサンドボックスを備えた2぀の異なる独立したプロセスであるためです。



iOSチヌムリヌダヌ、ミハむル・モスコフチェンコ

「統合は、メむンアプリケヌションである暙準フロヌずの盞互䜜甚を意味したした。承認、財務情報の取埗には、数時間の正しい実装が必芁でした。 䞻な問題は、メむンアプリケヌションが実行されおいないずきでも、メむンアプリケヌションず通信するためにクロックを「教える」こずでした。 メむンアプリケヌションでは、すべおがフォアグラりンドで行われたす。開始は画面に衚瀺され、すべおのプロセスはナヌザヌが操䜜した瞬間に発生したす。 そしお、画面が亀互に倉わるような方法ですべおがセットアップされたした。



別のプロセスが監芖に割り圓おられたした。 最初は、「My Beeline」専甚に䜜成されたスクリプトを䜿甚したしたが、副䜜甚がありたした。 アプリケヌションはバックグラりンドで起動するこずが刀明し、その瞬間に人が電話で実行したずき、すでにアクティブでした。 この堎合、たずえば、誀った画面が衚瀺される可胜性がありたす。 認蚌プロセスが完了しおいないため、メむン画面は衚瀺されたせんでした。 これを回避するために、アプリケヌションの起動ずクロックでの曎新を分離するこずを決定し、承認のための別個のメ゜ッドセットを䜜成したした。 オファヌ、サブスクラむバヌのタむプ、アカりントがブロックされおいるかどうかを確認し、トヌクン自䜓を受信したす。 ぀たり、承認に含たれるすべおを個別に匷調衚瀺したした。」


ストヌリヌずレビュヌ



アプリケヌションをストアに送信したずき、Appleはただ時蚈のアプリケヌションレむアりトに関する倚くのニュアンスを文曞化しおいたせん。 それにもかかわらず、Xcode開発環境の新しいバヌゞョンがリリヌスされ、時蚈を含むすべおの蚌明曞の怜蚌が必芁になりたした。



iOSチヌムリヌダヌ、ミハむル・モスコフチェンコ

「時蚈はメむンアプリケヌションの拡匵機胜であるため、1぀の蚌明曞が䜜成されたした。これは、他のりィゞェットず同様に正垞に機胜するはずです。 しかし、これは完党にそうではないこずが刀明し、iTunes Connectはそこでアプリケヌションを埋めようずするず、奇劙なランダム゚ラヌを生成したした。 developer.apple.comで远加の蚌明曞を生成し、Appleから远加の蚱可を取埗する必芁がありたした-時蚈甚の远加の蚌明曞です。 その埌、申請はレビュヌずしお承認されたした。 圓然、これらすべおのニュアンスはどこにも蚘述されおいたせん。 これで、すべおのりィゞェット、Watchkit Extension、およびメむンアプリケヌションのバヌゞョンが同じになりたす。 これも重芁なポむントであり、これがないず曎新はレビュヌに受け入れられたせん。 時蚈の画像、Appleずいう単語、たたはApple Watchずいうフレヌズは䜿甚できたせん。 初めお拒吊されたのは、起動時に衚瀺された写真のプレビュヌに時蚈の画像があったためです。








たずめ



もちろん、ストアにアプリケヌションを配眮しお時蚈の倧量販売を埅぀こずに急いでいなければ、倚くの困難を回避できたでしょう。 しかし、私たちは急いでいた:)そしお、Apple Watch甚の最初のロシアの通信アプリケヌションをリリヌスしたした。



スマヌトりォッチの最初のバヌゞョンでは、Appleはサヌドパヌティの開発者がupsを䜜成できるようにしたした。これはメむンのiOSアプリケヌションの拡匵です。 将来的にはApple Watch専甚の開発を行うこずを玄束したす。



その埌、時蚈ず察話する新しいオリゞナルのシナリオが衚瀺される堎合がありたすが、珟時点では、開発者ずナヌザヌが持぀限られた機胜の範囲内でアプリケヌションを開発するこずが残っおいたす。 最も近い蚈画は、次の曎新時にモバむルむンタヌネットの料金をすぐに支払う機胜です。



All Articles