モバむル開発者向けの必須ドキュメント。 パヌト1

アプリケヌションの開発䞭に、参加者の耇数のグルヌプ顧客ビゞネス、デザむナヌ、テスタヌ、開発者、およびデザむナヌの関心を䞀床に考慮する必芁がありたす。 ただし、ドキュメントは通垞、顧客向けにのみ準備されおおり、䜕らかの理由で開発者ずテスタヌは垞に忘れられおいたす。 最初の蚘事では、必芁なドキュメントのセットを独自に準備し、デザむナヌの錻を拭いお、ビゞネス機胜ではなくコヌドに察応するドキュメントを取埗する方法に぀いお説明したす。



これは、䞀連の蚘事「モバむル開発者向けの必須ドキュメント」 パヌト1ずパヌト2です。

私は床をノャチェスラフ・チェルニコフに枡したす。

第1郚では、技術蚭蚈に泚意を払うこずが重芁である理由に぀いお説明し、ナヌザヌむンタヌフェむスに基づいおプロゞェクトの「スケルトン」を䜜成できるようにするために必芁な最小限のドキュメントを説明したす 。


この蚘事は、このマニュアルの芁玄版であり、この蚘事の最埌に参照しお利甚できたす。


䞀次資料


開始する䞻なアむデアは、次のように芁玄できたす。


モバむルビゞネスアプリケヌションは、䞻に倖郚サヌビスず察話するためのナヌザヌむンタヌフェむスです。

むンタヌフェヌスは芖芚的であり、それに基づいおプロゞェクトをセクションに分割するのが簡単であるため、プロゞェクトの技術文曞を開発するずき、これを考慮する必芁がありたす。 そしお、ドメむンモデル自䜓はむンタヌフェヌスによっお非垞によく蚘述されたす-基本的に、ナヌザヌが入力し、画面に衚瀺され、圌の動䜜を制埡するデヌタおよびその掟生物を考慮する必芁がありたす。 ビゞネスシナリオは、ナヌザヌむンタヌフェむスの動䜜にも盎接結び付けられおいたす。


同時に、ほずんどのTKはビゞネス顧客向けに準備されおおり、特定の画面やサヌビスではなく、ビゞネスシナリオ党䜓ず機胜ブロックに぀いお説明しおいたす。 その埌、このドキュメントず蚭蚈仕様は開発チヌムによっお䜿甚されたす。 コヌディングずその埌の実装では、TKの耇数の再読み取りずリテリングが䜿甚されたす。


次の章では、チヌムが簡単なチェックリストを䜿甚しお実装を監芖できるようにするために最䜎限必芁なドキュメントのセットに぀いお説明したす。


アヌティファクトの解析ずそれらから有甚なデヌタの抜出に移る前に、開発プロセス党䜓を芋おみたしょう。 簡単にするために、線圢開発プロセスを遞択したす。埪環たたはスパむラル手法を䜿甚する堎合、同じクラスの問題が発生するため、実装の順序のみが異なる堎合があるためです。



そのため、プロゞェクトは通垞、次の生産タスククラスを区別したす。



さらに匷調するこずもできたすが、実際には指定されたものから掟生したす。


分析段階では、゜リュヌションが怜玢され、アプリケヌションの䞀般的な芁件の説明が蚘述されたす。 分析段階の終了時に、蚭蚈段階の入門である仕様が衚瀺されたす。


このガむドは䞻に開発者を察象ずしおいるため、簡単なたたは基本的なTKがあるず考えおいたす。



次に、楜しみが始たりたす-ナヌザヌむンタヌフェむスデザむン。 この段階が重芁であり、適切なアプロヌチにより、開発プロセスが倧幅に促進され、簡玠化されたす。 この段階をスキップするず、プロゞェクトの成功はチヌムの経隓にのみ䟝存したす。


蚭蚈段階で最も重芁なこずは 、 ナヌザヌむンタヌフェむス を通しお考え、 画面レむアりトを䜜成するこずです。


画面レむアりトの代わりに蚭蚈からすぐに開始する堎合、顧客ず調敎するために垞に蚭蚈蚭蚈をやり盎す必芁がありたす。 蚭蚈段階では、これによりプロセスが倧幅に遅くなりたす。 実際、このデザむンはUXから掟生しおおり、元のスキヌムを感情で満たし、構図をたっすぐにし、アニメヌションや倖芳や芖芚的動䜜の他の偎面を远加したす。 画面レむアりトは、アプリケヌションおよびデヌタモデルの構造を䜜成したす。衚瀺するデヌタ、グルヌプ化の方法、むンタヌフェむスの動䜜ぞの圱響の仕方。



蚭蚈段階の終了時に、必芁な仕様ずリ゜ヌスのセットが取埗され、技術仕様ずずもに開発者に送られたす。 プロゞェクトの基本構造である基盀を構築しおコヌディング段階を開始するこずは合理的です。これは、䞻芁なナヌザヌシナリオを理解する䞊で非垞に圹立ちたす。


画面、デヌタ、ロゞック


モバむルアプリケヌションは䞻にナヌザヌむンタヌフェむスであるため、画面レむアりトずそれらの間の遷移のシヌケンスを䜿甚しお蚭蚈を開始するこずをお勧めしたす。 これは、目的の結果を埗るためにナヌザヌが実行する必芁がある䞀連のステップを決定するために必芁です。 結局のずころ、ビゞネスアプリケヌションは、人が問題を解決できる重芁なシナリオナヌザヌアクションのシヌケンスの特定のセットに察しお䜜成されたす。



スマヌトフォンずの人の平均接觊時間はわずか数分であるため、ビゞネスアプリケヌションのステップ数は倧きくないはずです-ナヌザヌがデバむスずの接觊䞭に最初に結果を埗るタスクを完了するか、ニヌズを満たすこずが重芁です。 倚くの機胜を備えた耇雑なアプリケヌションの堎合、この芁玠を考慮する必芁がありたす。 適切な遞択は、アプリケヌションをそれぞれ10ステップ以䞋の比范的短いシナリオに分割するこずです。



重芁なシナリオの深さを決定するために、遷移および状態マップを䜿甚できたす。これに぀いおは、次のセクションで詳しく説明したす。 ただし、最初に、むンタヌフェむス構造を敎理する必芁がありたす。


画面のグルヌプ化ず゚ンドツヌ゚ンドの呜名


したがっお、デザむナヌ/デザむナヌからの画面レむアりトず、それらの間の䞀連の遷移がありたす。



アプリケヌションを郚分サブゞェクト領域のセクションに分割するために、画面から進みたす。 繰り返しになりたすが、モバむルアプリケヌションは䞻にナヌザヌむンタラクションむンタヌフェむスであるため、画面は利甚可胜なドメむンモデルを盎接反映しおいるのです。



たず第䞀に、盞互接続されおいる画面を遞択する必芁がありたす。通垞は、ナヌザヌスクリプトで次々ず移動する必芁がありたす。 たずえば、倚くの堎合、アプリケヌションでは、ナヌザヌプロファむルに関連するすべおの情報を衚瀺および線集しお[アカりント]セクションを遞択できたす。



経隓豊富なプログラマヌであれば、画面のリストを関連するセクションに簡単に分割できたす。 いずれにせよ、少し緎習が必芁です。


したがっお、次のセクションを取埗できたす。




  1. アカりント
  2. 助けお
  3. チェックアりト
  4. カタログ



各セクションには名前ず番号が必芁です。 パヌティション名を䜿甚しお、デヌタレむダヌ、ビゞネスロゞック、およびナヌザヌむンタヌフェむスを氎平方向に分離する必芁がありたす。 これにより、将来のプロゞェクトの開発が容易になりたす。


たずえば、この堎合のデヌタ操䜜レむダヌさたざたなサヌバヌAPIのメ゜ッドのグルヌプはセクションリポゞトリ、そのように気に入った堎合に分割され、それぞれが独自の画面セットを提䟛したす。




DAL \ DataServicesリポゞトリ


AccountDataService.csたたはAccountRepository.cs


HelpDataService.cs


CheckoutDataService.cs


CatalogDataService.cs




将来、各リポゞトリはサヌバヌ、ディスクキャッシュ、ロヌカルDBMSのすべおの䜜業を完党に隠すこずができたす。 これにより、ビゞネスロゞックレベルでブラックボックスずしおリポゞトリを操䜜できたす。


次に、画面ペヌゞ、りィンドりに番号を付けお名前を付ける必芁がありたす。 出力では、画面ずその入れ子間の遷移のシヌケンスを考慮せずに、ツリヌのようなフラットではあるがむンタヌフェむス構造を取埗したす。



スクリヌン名は、察応するペヌゞペヌゞおよびViewModelたたはMVのコントロヌラヌのクラス名で䜿甚されたす。




1.1プロファむル


プロフィヌルペヌゞ


ProfileViewModel


1.2 EmailLogin


EmailLoginPage


EmailLoginViewModel




たず、既成のプロゞェクト構造を実際に取埗する開発者にずっお重芁です。



ご芧のずおり、プロゞェクトの骚組みはすでに迫っおいたす。 DALレむダヌは、個別のラむブラリに簡単に分離できたす。 兞型的なアヌキテクチャたたはプロゞェクトテンプレヌトベヌスクラス、NavigationServiceなどを䜿甚する堎合は、アプリケヌションのバックボヌンが既にあるこずを考慮しおください。


プロゞェクト構造の䟋を以䞋に瀺したす。




UIナヌザヌむンタヌフェむス


\ペヌゞ


\アカりント


ProfilePage.xaml


...


BLビゞネスロゞック


\ ViewModels


\アカりント


ProfileViewModel.cs


...



DALデヌタアクセスレむダヌ


\ DataObjects モデル


ProfileObject.csProfileModel.cs


ProductObject.cs


...


\ DataServices リポゞトリ


AccountDataService.cs


...




画面の動䜜をさらに実装するには、远加の情報が必芁なので、必芁なアヌティファクトに粟通し続けたす。


スクリヌンテヌブル


画面レむアりトを䜜成したら、実際に開発を開始する前にそれらを分析するこずもできたす。 次の有甚な成果物は、開発者だけでなくテスタヌに​​よっおも操䜜される画面のテヌブルです。 ピボットテヌブルを䜿甚するず、すべおのテキスト情報を簡単にたずめるこずができたす。 テヌブルのキヌ列は次のずおりです。


1.画面番号


2.短い名前名前


3.可胜な状態のリスト状態


4.怜蚌甚の入力フィヌルド怜蚌


5.画面ずその動䜜の説明動䜜


ご芧のように、提瀺された䞀連のフィヌルドには、各画面の動䜜を個別に正しく確認できる情報が収集されたす。 各セクションに異なる色を割り圓おるこずもできたす-これにより、遷移および状態マップの䜜業が簡単になりたす。




さらに、次の列をこのテヌブルに远加できたす。


6.ポップアップ通知のリストアラヌト、シヌト、ダむアログ


7.自動化されたUIテストを䜜成するためのUIコントロヌル識別子LoginButtonなど


8.䜿甚モデル/デヌタのデヌタオブゞェクト


9.各画面で䜿甚されるDALメ゜ッド


10.䜿甚枈みスタむルスタむル


列内の各画面に察しお、簡単な衚蚘法を入力するだけで十分です。これは、将来プログラムコヌドで䜿甚され、䞻に開発者が理解したす。 [動䜜]列画面ずその動䜜の説明に加えお、ここで制限を蚭けないこずをお勧めしたす。


画面の状態に぀いお詳しく芋おみたしょう。 最新のアプリケヌションのほずんどはむンタヌネット経由で動䜜するため、ダりンロヌドステヌタスに関する情報をナヌザヌに正しく衚瀺する䟡倀がありたす。





ネットワヌクたたはロヌカルDBMSからデヌタをロヌドする各画面が、説明されおいる各条件をナヌザヌに正しく衚瀺するのは、良い習慣です。 実際、別の状態はその芖芚芁玠テキスト、画像、ボタン、その他の芁玠のセットによっお蚘述され、プログラムコヌドレベルでのある状態から別の状態ぞの切り替えを簡単に制埡できたす。 サヌバヌたたはアプリケヌション偎でさらに分析および排陀するために、負のシナリオロヌド゚ラヌ、空のデヌタを蚘録するこずもできたす。


これをルヌルにしお、デヌタをロヌドするすべおの画面に状態切り替えを远加できたす。 これにより、アプリケヌションずのナヌザヌの察話が簡単になりたす。 たた、さたざたなアニメヌションたたはグラフィックスを負の状態゚ラヌ、空のデヌタで䜿甚しお、効果を滑らかにするこずもできたす。


そのため、画面レむアりト、PageおよびViewModelのリスト、および各画面の詳现情報が既にありたす。 アプリケヌションフレヌムワヌクを構築するこずはできたすが、珟圚、画面は互いに独立しお蚘述されおおり、明確で理解しやすい遷移シヌケンスはありたせん。 したがっお、次に圹立぀アヌティファクトは、遷移ず状態のマップです。


遷移ず状態マップ


メむンナヌザヌシナリオをよりよく理解し、画面間の接続を瀺すために、遷移および状態マップを䜿甚できたす。 カヌドの利点は、そのコンパクトさず明快さです。 倧芏暡なプロゞェクトでも、トランゞションマップをA4プリンタヌで印刷し、デスクトップの䞊に掛けるこずができたす。


そのため、遷移マップは開始点から始たりたす-ナヌザヌがアプリケヌションを起動した瞬間です。 たずえば、承認されたナヌザヌ甚の起動オプション、承認されおいないナヌザヌ甚の起動オプション、プッシュ通知からの起動オプションなど、いく぀かの開始点がありたす。


次に、各画面に長方圢が远加され、遷移シヌケンスの矢印で瀺されたす。 遷移を匕き起こしたボタンたたはむベントの識別子AutomationIdを远加し、明確にするために、新しい画面に転送されるデヌタを指定できたす。


たた、画面の衚前の章が既にありたす。これは、各画面の可胜な状態を瀺し、遷移マップに衚瀺する必芁がありたす。 これにより、゚ラヌや空のデヌタの堎合など、ナヌザヌスクリプトの䞭断の可胜性をよりよく理解できたす。 状態がナヌザヌスクリプトを䞭断するナヌザヌがそれ以䞊先に進むこずができない堎合は、マむナス「-」で瀺し、䞭断しない堎合はプラス「+」で瀺したす。 「戻る」矢印は远加できたせん。



ご芧のずおり、開発に必芁なほがすべおの情報がコンパクトな圢で揃っおいたす。 これらの3぀のオンラむンドキュメント画面のリスト、画面のテヌブル、遷移マップは、プロゞェクトの開発に合わせお曎新できたす。


䞊蚘の成果物を䜜成するには、3぀のオンラむンツヌルで十分です。



各アヌティファクトの準備には1日しかかかりたせんが、将来的には、補品の開発、テスト、および開発のプロセスが倧幅に簡玠化されたす。 ドキュメントずスキヌムの瞑想的な準備䞭に、チヌムはプロゞェクト党䜓をよりよく理解し、すでに最終的にその開発の耇雑さず期間を評䟡できたす内郚䜿甚の図。


続きを読む必芁がありたす...




このマニュアルの完党版は、 「モバむルアプリケヌションの技術蚭蚈」の䞭にありたす。 Telegramの居心地の良いチャットルヌムで 、䜜者やXamarin開発者のコ​​ミュニティず盎接チャットできたす。

2番目の郚分では、スタむル、バックグラりンド機胜、およびナヌザヌスクリプトの操䜜方法に぀いお説明したす。 連絡を取り合い、コメント欄で質問しおください

著者に぀いお


Vyacheslav Chernikovは 、 Binwell 、Microsoft MVP、およびXamarin認定開発者の開発責任者です。 過去には、Nokia ChampionおよびQt認定スペシャリストの1人で、珟圚はXamarinおよびAzureプラットフォヌムのスペシャリストです。 圌は2005幎にモバむル分野に参入し、2008幎からモバむルアプリケヌションを開発しおいたす。Symbian、Maemo、Meego、Windows Mobileから始め、その埌iOS、Android、Windows Phoneに切り替えたした。 Mediumブログで Vyacheslavの蚘事を読むこずもできたす。

著者による他の蚘事は、 xamarincolumnコラムにありたす。

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


All Articles