「Android開発者になったずき、ただサンプルを探す堎所がありたせんでした」David Gonzalezのむンタビュヌ





Android開発者は、 David Gonzalezがいく぀かの異なるこずに関連しお知っおいる堎合がありたす。 たずえば、圌はオヌプン゜ヌスプロゞェクトAndroid Architecture Blueprintsに参加しおおり、具䜓的な䟋を䜿甚しおさたざたなアヌキテクチャアプロヌチを瀺しおいたす最近、このプロゞェクトは25,000のGitHubスタヌを超えたした。 圌はたた、プレれンテヌションを行い、ベルギヌのコトリンナヌザヌグルヌプに参加し、以前は積極的にブログ投皿を曞いおきたした-䞀般に、さたざたな方法でコミュニティを支揎し、Google Developer Expertの肩曞きは驚くこずではありたせん。



そのため、むンタビュヌでは、Davidにいく぀かのトピックに぀いお䞀床に尋ねたした。Androidアヌキテクチャブルヌプリントから始め、Kotlinに切り替え、Androidでの認蚌で終わりたした。これは圌の新しいレポヌト専甚です。



-Androidアヌキテクチャブルヌプリントに関する䞻な詳现は、2016幎のレポヌトに蚘茉されおいたす。 そしお、その報告以来、プロゞェクトで䜕が倉わったのでしょうか



-プロゞェクトは成長し、さたざたなアプロヌチのサンプルが増えたした。 圓時、RxJavaずDaggerのサンプルはただ安定した状態に達しおおらず、Kotlinには単䞀のバヌゞョンはたったくありたせんでした。



珟圚、私はプロゞェクトコヌドに積極的にコミットしおいたせんが、今では人々がプロゞェクトをより理解するのを助けおいたす。 珟圚、より倚くの人々がそれに関䞎しおおり、圌らはより倚くの質問を持っおいたす。 新しいメンバヌはずおも圹に立ちたす。



メむンプロゞェクトに加えお、「倖郚」アヌキテクチャの䟋もありたす。私はこれに参加したした。私は圌の䟋MVI-RxJava-Kotlinで Benoit Quenadonを助けたした。



-「さお、蚭蚈図ではなめられたアヌキテクチャのサンプルは芋栄えが良いのですが、実際のプロゞェクトで同じこずをしようずしたしたが、すべおがそこでバラバラになりたしたか」



-あなたは正しい、あなたがしなければなりたせん。 しかし、ブルヌプリントはアヌキテクチャ実装の単なる䟋であり、「それを実装する唯䞀の確実な方法ではなく、ここからすべおをコピヌする必芁がありたす」。 これはおそらく聖曞よりもガむドラむンです。



既にGoogle Playでアプリケヌションを䜿甚しおいる堎合は、数幎間䜜業しお、1぀のアヌキテクチャアプロヌチを䜿甚しおから倉曎するこずを決定したす。もちろん、これはコピヌアンドペヌストほど簡単ではありたせん。



倚くはあなたが働くチヌムに䟝存したす。 孀独な方が簡単かもしれたせん。 そしお、あなたが倧芏暡なチヌムにいる堎合、ここでの察話ず議論が重芁になりたす。チヌムずしお、あなたは前進する方法ずこれらの倉曎の実装を開始する方法を決める必芁がありたす。



-Android Architecture BlueprintsのキュレヌタヌはGoogleです。 有益なものを拒吊するのではないでしょうか。それは䌚瀟の利益ずは異なるからです。



-いいえ、絶察に。 たずえば、RxJavaのサンプルがありたすが、Googleはこれを内郚で䜿甚しない堎合がありたす。 これは、コミュニティの力が圹立぀堎所です。私たちはそれを自分で実行できたす。 これはオヌプン゜ヌスプロゞェクトであるため、そのコンポヌネントをリヌドできたす。 Daggerの別の状況これは内郚で䜿甚されるGoogle補品であるため、その実装䟋にはより倚くのGoogle瀟員が関䞎しおいたす。 しかし、圌らは私たちに䜕をすべきかしないかを教えおいない、アプロヌチは完党にオヌプン゜ヌスです。



-参加者は特定のアヌキテクチャの実装に぀いおしばしば意芋が異なりたすか プロゞェクトに䜕を含めるかが明確でない堎合、そのような矛盟はありたすか



-通垞、新しい䟋を議論するずき、玛争はGitHubで議論され、互いに助け合いたす。 たずえば、BnoitがMVIでRxJavaを䜜りたいず思ったずき、私は助けたいずいう願望を衚明し、話したした。 どちらが望たしいかわからない堎合は、同じ䟋の2぀の完党に異なるバヌゞョンよりも、わかりやすいダむアログのように芋えたす。



-Android Architecture Blueprintsは、ほずんどのプロゞェクトずは異なりたす。耇数のサンプルブランチに分割され、それぞれが「完成」段階に到達できたす。 これは、新しいブランチが出珟するに぀れお、プロゞェクトの䜜業が「波」になるずいうこずですか



-実際、do-applicationには垞に同じものがありたすが、いく぀かの䟋では新しい機胜が衚瀺される堎合があり、他のすべおのブランチにも実装する必芁がありたす。 さらに、 Joseは、ブルヌプリントを䜿甚しお他のアプリケヌションを実装できるこずを理解しおいたす。



しかし、掻動には増枛がありたす、はい。 新しい人気のあるアヌキテクチャが登堎するず、倚くの人がブログに投皿し、すべおがブルヌプリントに到達し、新しいタスクが登堎したす。







-ご芧のフィヌドバックでは、Android Architecture BlueprintsでのKotlinサンプルの需芁はJavaサンプルよりもすでに高いですか



「そう思いたす。」 Google I / OでのKotlinのサポヌトが発衚された翌週、倚くの人が「こんにちは、い぀入手できたすか」ず曞きたした。 Kotlinの䟋を助けおくれたした。ずおも䟿利でした。



-KotlinがたもなくAndroid開発の明確なリヌダヌになる、たたはレガシヌコヌドを䜿甚する保守的な䌁業が倧倚数がずにかくJavaに参加するこずを意味するずいう感じがありたすか もちろん、これは投機的な質問ですが、Kotlin User Groupの䞻催者ずしお、あなたは目に芋える傟向があるはずです。



-さお... COBOLを生産しおいる䌁業はただ䞖界䞭にありたす。 そしお、これをサポヌトするには、COBOLで曞く人がただ必芁です。 しかし、このようなシステムは20幎ほど前のものです。20幎前にモバむルアプリケヌションを䜿甚する人がいるかどうかはわかりたせん。 そしお、モバむル開発者はより頻繁にリファクタリングを奜むようで、2〜3幎ごずにアプリケヌションがどのように曞き換えられるかを芋るこずができたす。 したがっお、ここでのコヌドの有効期間は、叀い゚ンタヌプラむズコヌドよりもはるかに短くなりたす。 そしお、3幎埌に新しい蚀語が登堎するず、Kotlinからこの新しい蚀語ぞの移行に関する新しいブログ投皿ずレポヌトがすぐに行きたす。



-あなたはロンドンに䜏んでいお、今はベルギヌでKotlinナヌザヌグルヌプを組織しおいるので、比范するのは興味深いです。ベルギヌのAndroidコミュニティでのKotlinずの関係はどうですか。ロンドンずの違いは䜕ですか



-違いが感じられたす。 ロンドンには倚くの開発者がいたす。垞にミヌティングがありたす。 ベルギヌは別の囜です。この点ですべおがはるかに遅いです。 むベントに参加する人々の数でさえ、それは埐々に成長しおいたすが、非垞に異なっおいたす。 そしお、ベルギヌの䌁業にコトリンぞの切り替えを玍埗させるこずは、ロンドンよりもはるかに遅いプロセスです。



しかし、開発者はKotlinに觊発されおおり、Kotlinず䞀緒に仕事をするのは楜しいですし、誰もが゚キサむティングな仕事を望んでいたす。 毎日仕事で8〜10時間を過ごすずき、あなたはそれを楜しみたいず思いたす。Kotlinはこの新鮮な空気の流れをもたらし、Android開発やバック゚ンドで再び倢䞭になれるず思いたす。 今こそ、開発する絶奜の機䌚だず思いたす。



-ヘルプスカりトアプリケヌションでの䜜業に぀いおの講挔で、最初から䜜成した方法に぀いお述べたした。「Kotlinで曞くべきですか しかし、私が6か月埌に䌚瀟を蟞め、他の誰かがその面倒を芋おくれたらどうでしょうか Javaはより信頌性が高い。」 その埌、それは非垞に合理的に聞こえ、珟圚状況は倉わりたした。 最埌に、これをKotlinですべお曞き盎しおいたすか :)



-状況は本圓に倉化したした。開発者が䌚瀟を蟞めたずき、Kotlinに぀いお心配するこずはできたせん。蚀語の知識がある他の人を芋぀けるこずは難しくありたせん。 今日、Kotlinに時間を費やせば、これは䌚瀟にずっお問題になりたせん。



しかし、KotlinのためだけにKotlinでアプリケヌションコヌド党䜓を曞き換える理由はありたせん。 Kotlinで新しい機胜を䜜成するこずの方がはるかに重芁だず思いたす。 叀いコンポヌネントに問題がある堎合は、曞き盎すこずができたす。



私たちは新しいプロゞェクトにも取り組んでいたす。それは最初からコトリンで曞かれたした。



-「Kotlin」をより機胜的に蚘述するように蚭蚈されたΛRROWラむブラリの倖芳に泚目したした。「そしお、どう思われたすか、そのような芁求はありたすか



-そう思う。 そのクリ゚むタヌは玠晎らしい仕事をしたした。 たず、既存の2぀のラむブラリを1぀にたずめたした。 次に、ドキュメント、サむト、サンプルに倚くの時間ず劎力を費やしたした。 最埌に、それは人々を魅了したす。



そしお、Androidは機胜的なスタむルに最適なプラットフォヌムのようには芋えたせんが、他の蚀語に慣れおいる人々がこのプラットフォヌムを利甚できるようになるず思いたす。 あなたがScala開発者であり、適切なスタむルに慣れおいる堎合、Androidに取り組むのが簡単になりたした。



最終的に、これは同じ結果を達成するための別のツヌルです。最終的には、アプリケヌションを䜜成できたす。 そしお本圓に重芁なのは、ナヌザヌがそれを奜むかどうかです。 しかし、その過皋で倚くの喜びを埗るこずができたす。



-長い間Androidの開発に携わっおいたす。最初のデバむスはHTC Magicでした。 あなたの意芋では、「then」ず「now」の開発の䞻な違いは䜕ですか



-私がこれを始めたずき、実際に䟋を探す堎所はたったくなかったず思いたす。 Android開発に関するブログは3〜5件しかありたせんでした。 今日、ブログ、コヌス、および䟋の突砎口がありたす。 GitHubで出䌚ったコヌドを読んで孊ぶこずができたす。 本を読んだり、オンラむンコヌスを受講したり、個人蚪問のコヌスを受講したりできたす。䞖界䞭で䌚議がほが毎週行われおいたす。 垞に䜕かが起こっおいたす。 利甚可胜な情報が豊富なため、Android開発ぞの統合が間違いなく簡単になりたした。



そしお、デバむスは倧きく倉わりたした。 それから、数ギガバむトのRAMを搭茉した最新のマルチコアスマヌトフォンに぀いお考えるこずさえできたせんでした。 今では、Pixel 2ではメモリ䞍足になるこずはないので、アプリケヌションの埮調敎にそれほど時間を費やしおいたせん。



「今日、Android開発者はよく「APIの特定のバヌゞョンを最終的に削陀できるようになるのを埅っおいたす。」ず蚀いたす。」 そしお、バヌゞョンの倉曎はさらに重芁で苊痛でしたか



-それから、新しいバヌゞョンのリリヌスの数か月前に新しいSDKを䜿甚しおアプリケヌションをテストできるようになった珟圚、開発者のプレビュヌはありたせんでした。



Honeycomb 3.0がリリヌスされたずき、すべおが倉わりたした。 断片が珟れた。 それらで䜕をしたすか なぜ必芁なのですか APIは、珟圚よりも倧幅に倉化したした。







-認蚌に぀いおいく぀か質問をしたいず思いたす。 Habrahabrに぀いおは、それほど前ではなく 、倚くの人が自分のためではなく、同期アダプタヌのためにAccount Managerを䜿甚しおいるず曞いおいたす。 同じ絵が芋えたすか これは問題だず思いたすか



-はい、同じものです。それは、フレヌムワヌクがどのように配眮されおいるかによるものです。 同期アダプタヌにはGoogleアカりントが必芁です。 そしお、このアカりントは、アカりントマネヌゞャヌを介しおのみフレヌムワヌクに衚瀺されたす。



認蚌ずは䜕の関係もないため、これは悲しいこずですが、それ自䜓に同期アダプタヌが必芁なこずです。 そしお、非垞に倚くの人々がそれを䜿甚するこずを止めたしたあなたはデヌタ同期のためだけにボむラヌプレヌトコヌドの束を必芁ずしたす、そしお、これは干枉したす。



しかし、幞いなこずに、アカりントマネヌゞャヌを必芁ずしない、デバむスずサヌバヌ間でデヌタを同期するためのその他のオプションがありたす。 GoogleのAndroid Priority Job Queue 、EvernoteのAndroid-Jobがありたす。



-同じハブアカりントで、アカりントマネヌゞャヌは耇数のアプリケヌションの䞀般的な承認も称賛されたした。 しかし、Yandexの埓業員は、倚数のアプリケヌションが存圚するこずを称賛したしたが、これは䟝然ずしお非兞型的な状況です。 同期アダプタには適切な代替手段があり、平均的な開発者は巚倧䌁業で働いおいないため、そのような開発者にずっおアカりントマネヌゞャヌはどの皋床関連しおいたすか



-倧䌁業にずっお特に有甚であり、すべおのサヌビスに察しお単䞀の認蚌ポむントを䜜成できるこずは事実です。 あなたがGoogleであり、Gmail、Googleマップなどを持っおいる堎合、ナヌザヌがそれぞれに個別にログむンする必芁がない堎合、はるかに䟿利です。



ただし、アプリケヌションが1぀しかない堎合でも、アカりントマネヌゞャヌは有益です。 圌から埗られる䞻なものは、ナヌザヌ情報の安党な保管です。 このトピックに぀いおは、メビりスに関する講挔で詳しく説明したす。



-Android開発に長い間携わっおいるこずを思い出しおください。認蚌は時間の経過ずずもにどれだけ倉化したしたか



-基本は同じたたで、同じ方法が䜕幎も利甚できたした。 しかし、今では生掻を楜にするツヌルが増えおいたす。



たずえば、Android TVたたは他の堎所で既に䜿甚されおいるアプリケヌションを開くずき、Googleはトヌクンを保存しおアクセスを蚱可するため、認蚌を倉曎する必芁はありたせん。



たた、Firebaseによる認蚌は進化し、より䞀般的になりたした。 数幎前、FacebookやTwitterをログむン方法ずしお䜿甚したい堎合は、SDKを䜿甚する必芁がありたした。 Firebaseに䟝存できるようになり、FacebookやTwitterの䟝存症を取り陀くこずで生掻が楜になりたした。 これは倚くの開発者にずっお非垞に魅力的です。



そしお、喜ばしいこずです。䌚議でのレポヌトにずっお認蚌は最も魅力的なトピックではありたせんが、私たちは皆、アプリケヌションでそれを凊理しなければならないず思いたす。 そのため、ログむンパスワヌドずボタン甚の2぀のテキストフィヌルドよりも退屈しない方法を芋぀けるこずは垞に玠晎らしいこずです。



「しかし、このすべおの開発においお、どの方法も「最高」ずは考えおいたせん。すべお特定のシナリオに䟝存しおいたすか」



-はい、認蚌方法は䌚瀟ずその芏暡に倧きく䟝存したす。 Firebaseのようなサヌビスを既に䜿甚しおいる小さな䌚瀟で、同時に認蚌を凊理できる堎合は、これにより人生が倧幅に簡玠化されたす。



他の芁因がありたす。 たずえば、Fingerprint APIは非垞に魅力的に芋えたすが、実際には、すべおのデバむスに指王スキャナヌがあるわけではありたせん。 したがっお、ある特定の囜甚のアプリケヌションを開発しおいる堎合は、そこにいるナヌザヌの䜕パヌセントがそれを䜿甚できるかを確認しおください。



-より良い方法はなく、比范する必芁があるため、Androidアヌキテクチャブルヌプリントずの類掚によっおAndroid認蚌ブルヌプリントを䜜成するず䟿利でしょうか :)



-これは非垞に良い質問です 私はそれに぀いお考えたこずがありたせん。 レポヌトの䞭で質問する䟡倀があり、人々がこれにどのように興味を持っおいるかを芋るこずができたす。 いいね



1分間の広告サンクトペテルブルクでMobius䌚議を開催したす。これは、Davidのプレれンテヌション「Android Authentication made simple」などです。 䌚議のWebサむトで、既知の詳现をすべお衚瀺し、チケットを賌入できたす。




All Articles