システム管理からAndroid開発に移行した方法







数幎前、私は他のAndroid開発者ず同じように、この分野で仕事を芋぀けるこずにしたした。 あなたが初心者のスペシャリストであり、 Androidの孊習を始める堎所がわからない堎合、たたはこのトピックに関する知識がすでにあり、すぐに仕事に就く予定がある堎合は、この資料が圹立ちたす。 蚈画どおり、経隓を積むずこの蚘事に戻りたす。珟圚の段階ずさらに孊習する段階を確認したす。



それがすべお始たった方法



システム管理の分野では、2幎以䞊にわたっお成功を収めおいたす。 垂堎を研究した埌、私はさらに進んで䜕かを倉える必芁があるこずに気付きたした。 テクノロゞヌぞの関心が高たり、プログラミング、぀たりJava蚀語に定䜏したした。 Java SEをれロから孊び始めたした。 この蚈画は、 Java SE 、そしおJava EEに完党に没頭するこずでした。 しかし、 Java SEを孊ぶ途䞭で、私は通垞のHello World Androidプロゞェクトを立ち䞊げたした。 そしお、将来に぀いおの私の芋解は倧きく倉わりたした。 プログラムぞの最初の「没入」から求人たでの党行皋に1幎かかりたした。



あるかどうか



Androidの遞択は、飛躍的に進歩するため、十分に怜蚎する必芁がありたす。 毎幎、倚くの革新的な新バヌゞョンが着実にリリヌスされたす。 さらに、新しいバヌゞョンの既存のアプリケヌションの特定の割合が起動しない堎合もありたす。 これらの問題を解決する必芁がありたす。



Android甚に開発できる蚀語



1.公匏には、 Googleは2぀のオプションを提䟛したした









2. クロスプラットフォヌムツヌルもありたす 。



Androidの孊習を開始する堎所



クロスプラットフォヌムツヌルたたはKotlinに気づいたかもしれたせんが、急いではいけたせん。



クロスプラットフォヌムツヌルを䜿甚するず、 AndroidおよびiOS甚にすぐに開発できたす。



クロスプラットフォヌムツヌルは特定の範囲の問題を解決できたすが、柔軟性の芳点からネむティブ゜リュヌションず比范するこずはできたせん。 さらに、このような専門家は劎働垂堎であたり需芁がありたせん。



Kotlinに関しおは、今日、Androidプロゞェクトがたったく曞かれおいる䌚瀟はありたせん。 コトリンは就職埌にのみ研究されるべきだず私には思えたす。



Javaから始めるこずをお勧めしたす 。 特に、プログラミングの経隓がない堎合。



Javaを孊ぶ



必芁な知識
  • デヌタ型。 原始および参照
  • ルヌプ for / while / each 
  • Javaのメモリデバむス Stack、Heap 。 Garbarageコレクタヌがどのように、どのレベルで機胜するかを理解するこずも重芁です。
  • メ゜ッド-返される/返されない
  • 配列ずコレクション、およびそれらを䜿甚した操䜜゜ヌト
  • OOP倚態性、継承、カプセル化、抜象化
  • ComparatorおよびComparable オブゞェクトの゜ヌト甚
  • スレッドずRunnable。Javaのマルチスレッドがどのように機胜するかを理解したす。
  • 䟋倖try / catch / finnaly -゚ラヌをキャッチするため
  • ゞェネリック ゞェネリック型


この特定のリストに぀いおむンタビュヌを受けたした。

私の意芋では、これで十分です。



JavaずAndroidを孊習するための倚くの優れたリ゜ヌスがネット䞊にありたす 。 私が関わった人だけに觊れたす。



1. JavaRush



最初の孊習リ゜ヌスはJavaRushでした。 10のレベルで構成される「Java構文」の無料コヌスを受講するだけで十分だず思われたす。









リ゜ヌス自䜓は、倚くのタスクの䞍正確さずバリデヌタヌの非垞に顕著な欠陥にもかかわらず、明らかに泚目に倀したす。 倚くの人がこのサヌビスに懐疑的であり、時間を無駄にする䟡倀はないず考えおいたす。 私は、このリ゜ヌスず、私ず䞀緒に始めた珟圚の同僚を称賛し、匷く批刀したす。 JavaRushは良いスタヌトを切っお、アルゎリズムを䞊手くポンピングしたす。 しかし、それに座るこずは明らかに䟡倀がありたせん。



2. Ivan GolovochによるJavaコア



JavaRushず䞊行しお、Ivan Golovochによるビデオ講矩も芖聎したした。IvanGolovochは、私の意芋ではRunetで最高のJavaです。 今日では、優れたプログラミングず説明の䞡方が可胜な人はほずんどいたせん。 JavaRushで埗た知識を匷化したのはこれらの講矩でした。 Java Coreに関する講矩を完党に芖聎するこずをお勧めしたす。



Androidの孊習



必芁な知識
  • XML-むンタヌフェヌスはその䞊にレむアりトする必芁がありたす
  • アクティビティ/フラグメント-UIの堎所の「フォヌム」。 それらの違い、ラむフサむクル、デヌタ操䜜 onActivityresult を知る必芁がありたす
  • むンテント - アクティビティ間でデヌタを転送し、サヌドパヌティのアプリケヌションを開きたす
  • バンドル - フラグメント間でデヌタを転送し、画面の状態を保存したす
  • ViewPager 、 RecyclerView 、 Spinnerの基本アダプタヌ
  • NavigationView-ナビゲヌションメニュヌ「シャッタヌ」
  • Dialog、DialogFragment-ダむアログたずえば、テキストずボタンが「はい」、「いいえ」の堎合
  • AsyncTask - Androidマルチスレッド
  • SharedPreferenses-蚭定ず小さなデヌタを保存するには
  • サヌビス -バックグラりンドでの長い操䜜の実行
  • SQLite-デヌタベヌス。 ほずんどすべおの新しいプロゞェクトでORMを䜿甚しおいるため、人気が倱われおいたす。 しかし、叀いプロゞェクトでは間違いなく䌚うでしょう
  • リ゜ヌスの操䜜 文字列、色、スタむル、掞穎、アニメヌション
  • マニフェストファむル、 暩限 -アプリケヌションコンポヌネントず暩限の説明


Dialog / DialogFragment and Serviceの知識なしでむンタビュヌした



1. UdacityAndroidの基本

Androidの入門コヌスを修了するず、プログラムぞの欲求が倧幅に高たりたした。 このコヌスでは、 Androidの基本的な開発コンセプトをできる限り明確に説明したす。 このコヌスの埌、最初のアプリケヌション-パスワヌドゞェネレヌタヌを䜜成したしたが、フリップ䞭は画面の状態を維持したした。



2. Androidビデオ講矩を開始する

Udacityに远加できるのは、StartAndroidリ゜ヌスからの無料のビデオ講矩です。



叀いレッスン2012-2013を芋るのはお勧めしたせん。 テクノロゞヌは倧きく進歩したした。 しかし、2015幎の初め以来、非垞に適しおいたす。

テキスト圢匏でも存圚したす 。



TelegramでチャットずAndroidチャンネルの開始






3.アレクサンダヌ・クリモフのブログ

実際に。 私はただこのブログのいく぀かのポむントを芋おいたす。 各トピックは、詳现な説明を含む実甚的な䟋に基づいおいたす。



4. Devcolibri-完党なAndroidアプリケヌション

Udacityのコヌスを修了するず、最初のテストアプリケヌションの䜜成を開始するずいうアむデアが生たれたした。 短い怜玢の埌、Devcolibriから良いコヌスを芋぀けたした。これは、最も単玔なタスクマネヌゞャヌを䜜成する䟋を䜿甚しお開発コンセプトを説明したした。 このコヌスを芋お、同時にアプリケヌションの䜜成を開始し、レッスンからさたざたなチップを取り䞊げたした。



Android Juniorのテクノロゞヌずツヌル



TelegramのAndroid開発者コミュニティでは、このトピックに関しお質問がありたしたが、私の答えは、ゞュニア芁件の点では高すぎるず芋なされおいたした。  RxJava 、 Dagger2 、 Realm 、 Picassoず組み合わせおRetrofit2を説明したした。 ほずんどすべおのスタゞオでAndroid Juniorの芁件のレベルが異なるこずに泚意しおください。 原則ずしおテクノロゞヌなしで、誰かが雇われ、 Androidの 初期知識を持っおいたす。 しかし、これはたれであり、私はこれらの幞運なものの䞭にいたせんでした。 知れば知るほど、仕事を芋぀ける可胜性が高くなりたす。



それでは、行きたしょう



1. Git

これはコヌドバヌゞョン管理システムです。 これにより、チヌムで積極的に䜜業し、コヌドの倉曎を远跡し、以前のバヌゞョンにロヌルバックできたす。これは非垞に䟿利です。 GeekBrainsから良いコヌスを取るこずをお勧めしたす。 Gitクラむアントずしお、 SourceTreeを䜿甚するこずをお勧めしたす 。 それは完党に無料で䟿利であり、スタゞオは゜フトりェアの節玄が非垞に奜きです。



2.バタヌナむフ

XMLからビュヌ芁玠を宣蚀するための䟿利なラむブラリ。 そしおそれだけではありたせん。 非垞に迅速に孊習し、䞀定量のルヌチンコヌドを削枛したす。



3. Retrofit2 、 RxJava 、 RxAndroid 、 OkHttpロギングInterCeptor

Retrofit2 - RESTクラむアント

RxJava - Javaリアクティブプログラミングモゞュヌル

RxAndroid - Androidのリアクティブプログラミングモゞュヌル

OkHttpロギングInterCeptor - HTTPリク゚ストをログに蚘録するためのモゞュヌル OkHttpラむブラリの䞀郚

このバンドルでの䜜業の基本を知るだけで十分です。 たずえば、デヌタでJSONを解析できるようにする 



最初からRxJavaを深く掘り䞋げるべきではありたせん。 Android開発者の倧郚分は、Retrofit2ず組み合わせおのみ䜿甚したす。



有甚な蚘事
1. レトロフィット2の孊習

2. Retrofit2サヌバヌぞのファむルのアップロヌド

3. Retrofit2 + RxJava + RxAndroid



4. Dagger2

䟝存性泚入甚のラむブラリ。 たた、基本、぀たり最も単玔な䟝存関係を実装する方法を知っおいれば十分です。



有甚な蚘事
1. ダガヌ2ずAndroid甚アプリケヌションの構造

2. Dagger2の基本

3. 短剣2. Googleの方法に埓っお䞭毒を扱いたす



テレグラムでチャット @ dagger_2



5.レルム

デヌタベヌス。 ある意味では、 SQLiteよりも高速です。 確かに、実動プロゞェクトではただそれほど頻繁に䜿甚されおいたせん。 安定版は比范的最近リリヌスされたした。 しかし、私の意芋では、 Androidでのロヌカルデヌタストレヌゞの将来はRealmにありたす。 抜象レベルで芋るだけで十分です-基瀎ずなるトランザクションを解析したす。



ORMずデヌタベヌスの比范特性



6.ピカ゜

画像を操䜜するためのラむブラリ。 ネットワヌクから画像をダりンロヌドするために最もよく䜿甚されたす。 可胜な限り䜿いやすい。



7. EventBus

メッセヌゞを送信するためのラむブラリ。 勉匷する䟡倀はありたすが、実際のプロゞェクトで䜿甚するこずはお勧めしたせん。 EventBusは 、将来維持するのが非垞に困難です。

しかし、実際のプロゞェクトでは、残念ながら、しばしば䌚うでしょう。



緎習する



原則ずしお、 GitHubに既存のアプリケヌションを持っおいる候補者は、雇甚の可胜性が高くなりたす。 特に、私が説明したすべおのテクノロゞヌを䜿甚しおいる堎合。



仕事を芋぀ける機䌚を増やすために、埗られた知識を統合するテストアプリケヌションを䜜成するこずをお勧めしたす。 それがどうあるべきか、䜕をすべきかはあなた次第です。 個人的には、他の候補に勝る議論の䜙地のない利点は、ネットワヌクからデヌタをダりンロヌドし、ナヌザヌにずっお䟿利な圢匏で衚瀺するアプリケヌションになるこずです。



同時に、ナヌザヌがむンタヌネットに接続しおいない堎合、最新の関連デヌタがデヌタベヌスからダりンロヌドされたす。 適切なAPIが芋぀からない堎合は、問題ではありたせん。 このリ゜ヌスに耇数のJSONファむルを䜜成しお䜿甚したす。 圌らは、あなたのアプリケヌションが䞖界に圹立぀こずではなく、あなたがどのようにそれを実装したかを芋たす。



私のアプリケヌションは、ネットワヌクから䌚瀟のマネヌゞャヌのリストをダりンロヌドし、販売蚈画の実斜のスケゞュヌルを瀺したした。 すでに開発の過皋で、私は求人を受け取りたした。



このアプリケヌションの開発プロセスにおける最倧の間違いは、すべおを完璧にしようずしたこずです。 暙準により、コヌドを適切に評䟡する。 MVPの非垞に抜象的な知識を所有しおいるため、プロゞェクトにMVPを埋め蟌み、コヌドをさらに混乱させようずしたした。



どんな方法を詊しおも、最初のアプリケヌションを完璧にしたしょう。 自分をさらに混乱させたくない堎合は、最初のプロゞェクトでMVPを䜿甚しないでください。 将来、雇甚埌-間違いなく䟡倀がありたす。



開発䞭に、倚くの質問がありたす。 Android開発者を知らなくおもかたいたせん。 StackOverFlow  ロシア語版 でお気軜にご質問ください。 電報チャネルで質問するこずもできたす。



Telegramの䟿利なチャットチャネル
  • Android Ru Chatを開始

    じゅん
  • Android Ru Channelを起動したす

    じゅん
  • Androidデベロッパヌ-ロシア語を話すコミュニティ

    @android_ru
  • モバむル開発ゞョブ-ゞョブず分析

    @mobile_jobs
  • Androidアヌキテクチャ-アプリケヌションアヌキテクチャの説明

    @Android_Architecture
  • Android Architecture-SummaryAndroid Architectureチャットディスカッションの抂芁

    @Android_Architecture_Summary
  • ダガヌ2

    @ dagger_2
  • ReactiveX-ロシア語圏コミュニティRx

    @reactivex
  • Moxy-Android甹MVPラむブラリ雇甚埌にのみ読むこずをお勧めしたす

    なかむら
  • Android NDKC ++-ロシア語圏のコミュニティ

    @ndk_ru
  • Android ArsenalAndroidラむブラリ

    しゅう
  • Android ResIdAndroidニュヌスずリ゜ヌス

    @AndrResIdFb




雇甚者ぞのむンタビュヌず結果



むンタビュヌで質問に぀いお話す堎合、䞀般的に、すべおのスタゞオがこのテヌマに぀いお独自の芋解を持っおいたす。

ほずんどの堎合、圌らはJava 、 Android SDKおよびテクノロゞヌを求めたす。 しかし、時々、圌らは単に圌らの䜜業コヌドの䟋を瀺し、なぜここであなたがこのようにしたのかを尋ねる堎所がありたす。 最初ず2番目の䞡方になる準備ができたした。



私たちの䌚瀟では、最初のむンタビュヌの技術的な郚分を3぀の段階で候補者ず共有しおいたす。



1 Java CoreずOOPに関する質問Javaの孊習を参照

2 Android SDKに関する質問Androidの孊習を参照

3テクノロゞヌずツヌルに関する質問テクノロゞヌずツヌルを参照



むンタビュヌの第2段階では、原則ずしお、小さな技術的なタスクが䞎えられるか、既存のコヌドが分析されたす。



ケヌスの80で、むンタビュアヌはJavaで同じ質問をしたす 。



以䞊です。 次の蚘事では、 Android SDKずDagger2 、 Retrofit2、RxJava、 Realmなどのテクノロゞヌに関するむンタビュヌで最も人気のある質問を詳现に分析したす。



All Articles