Android
 Computer >> コンピューター >  >> システム >> Android

2019 年に Android アプリを開発する方法:「新しい」Android の採用

Bitotsav '19 アプリがどのように実現したか

背景:パンテオン ’17 ⏪

ほぼ 2 年前の 2017 年 9 月、友人の Ashank Anshuman が、私たちの研究所のテクニカル フェスト用のアプリに取り組むよう説得してくれました。私たちは昼夜を問わず約 2 週間作業を行い、フェスティバルに間に合うようにリリースの準備を整えました。私たちは疲れ果てていましたが、人々が実際に使用した製品を「世に出して」手に入れたのは素晴らしい気分でした!主催者が参加者にすべてを簡単に伝えるのに役立ち、その目的を完全に果たしました.

パンテオン '17 - Google Play のアプリ
若者が技術的スキルを披露するための全国的なプラットフォームを提供するための努力において;表示中… play.google.com

約 120 件のレビューで 4.9 と評価され、何らかの理由で Google のボットによって削除されましたが、それはまた別の機会に。アプリのソースを共有するようにとのリクエストをいくつか受け取りましたが、さまざまな理由で断りましたが、ほとんどの場合、コードに満足できなかったことが主な理由です。人々が学び、使用するのに十分なコードを書くための十分な時間と経験がありませんでした。

また行きましょう! ?

2018 年 11 月にさかのぼります。Ankit Agrawal (彼は「フェスト ガイ」です) から、毎年恒例の社会文化フェスである Bitotsav のチームに参加するように依頼されました。今回、私はアシャンクにアプリの開発に取り掛かるよう説得しました (かなりの説得力が必要でした!)。

12 月はあまりできませんでしたが、アーキテクチャ コンポーネント、AndroidX、Jetpack などについて読み始めました。また、ここ数か月で Kotlin にも慣れてきました。いくつかのコースが役に立ちました。唯一の Hadi Hariri によるコースと、Svetlana Isakova と Andrey Breslav による最近のコース (KotlinConf 2018 で紹介)。したがって、Kotlin はアプリの当然の選択でした。

Kotlin プログラミングの概要
Kotlin 1.0 は 2016 年 2 月にリリースされ、それ以来、世界中の開発者に採用されています... shop.oreilly.com
Java 開発者向け Kotlin |コースラ
JetBrains の Java 開発者向け Kotlin。 Kotlin プログラミング言語は、さらに多くの機能を提供する最新の言語です。 www.coursera.org

決定?

1 月の前半も、あまりコードを書かずに過ぎていきました。私は頭がいっぱいで、1 月 16 日まで大学に行けなかったからです。しかし、いくつかの重要な決定を下しました。

  • Kotlin のみを使用
  • 機能ベースのパッケージを使用する
  • AndroidX で Jetpack アーキテクチャ コンポーネントを使用する
  • 最小 API として API 21 を使用する (22 がより良い選択だったかもしれません)
  • Android Studio Canary を使用する
  • Git Flow と SemVer を使用する
  • フェスティバルの後に公開するのに十分なコードを書きますか?
2019 年に Android アプリを開発する方法:「新しい」Android の採用
AndroidX 搭載の Jetpack

基本的に、2017 年のアプリ開発のすべての経験から 2019 年の最前線へのハード リセットです。本当にエキサイティングでしたが、大きな挑戦でもありました。

コード コード コード! ?

Pantheon '17 で行ったように、Ashank がアプリのバックエンド (DB とネットワーク、FCM による通知、バックグラウンド処理) を担当し、私がフロントエンドと統合を担当することにしました。開始時や作業中には多くのリソースが役に立ちましたが、Google が提供するこれらのすばらしいコードラボは群を抜いて優れていました。

  • Room with a View - Kotlin (ViewModel、LiveData、Room with Coroutines)
  • Android アプリで Kotlin コルーチンを使用する
  • データ バインディング コードラボ
  • ナビゲーション コードラボ:(ナビゲーション アーキテクチャ コンポーネント)
  • WorkManager によるバックグラウンド作業
Google コードラボ
Google Developers Codelabs では、ガイド付きのチュートリアル付きのハンズオン コーディング エクスペリエンスが提供されます。ほとんどの Codelab では、順を追って説明します… codelabs.developers.google.com

また、Google による Sunflower &Google IO 18 アプリは、参照目的の理想的なコードベースでした。以前に知っていれば、Android Dev Summit アプリも参考になりました!

googlesamples/android-ひまわり
Android Jetpack を使用した Android 開発のベスト プラクティスを示すガーデニング アプリ。 - googlesamples/android-ひまわり github.com

これらを武器に、コーディングを開始しました。新しいナビゲーション アーキテクチャ コンポーネントを使用することにしました シングル アクティビティ アプリ アーキテクチャを実装する . Ashank は Room と FCM から始めました。 Koin を使うことも考えていました IoC 用 、しかしよくわかりませんでした。

ちなみに、Joe Birch はちょうどその頃、caster.io で Koin コースを開始し (機能は小さく、専門家による要点のコースで、開始から 1 週間はそれぞれ無料です!)、それを利用することにしました。そこに後悔はありません!真剣に、Android のサポートは素晴らしく、ドキュメンテーションは素晴らしい❤️

コイン
このコースでは、Koin として知られる依存性注入フレームワークについて、完全に機能するものを構築することで学習します... caster.io

Navigation と Koin のセットアップで、UI から始めました。マテリアル デザイン コンポーネントを使用することにしました。 ガイドラインが適用される UI 専用 とドキュメント 重宝しました。また、持っていた データ バインディングを使用する なぜなら私はそれが大好きだから!一方、Ashank は WorkManager、 を実装しました。 Firebase Job Dispatcher の代わりに使用することにしました 、完全な Jetpack になります!

最初に開発したのは Schedule UI で、アーキテクチャ コンポーネントに慣れるのに役立ちました。これが完了したら、おそらくアプリの最も複雑な部分である登録フロー UI に移りました。これは、ライブで検証されたフォームを使用して 3 つのステップを実装するための LiveData とナビゲーションの高度な使用を特徴としていました (独自のブログ投稿に値します。すぐ?!)。これにより、これらのコンポーネントに自信が持てるようになり、それ以降はスムーズな乗り心地でした。計画された機能を完成させ、いくつかの落とし穴を発見し、いくつかのバグを修正しました。

起動しますか?

主要な機能を実装したので、いくつかの UI のブラッシュアップを行い、最終的な TODO をいくつか完了して、リリースの準備が整いました!最後の仕上げとして、ずっと計画していたことを追加しました:

設定変更ごとに異なるカラー テーマ!これは、フェストのテーマ「アジアの色」を引き立てるために行われました。

アプリは 2019 年 2 月 11 日に Play ストアで公開されました。 ??

Bitotsav '19 - Google Play のアプリ
Bitotsav '19 ビルラ工科大学の第 29 版である Mesra の年次社会文化祭は、いよいよ準備が整いました… play.google.com
2019 年に Android アプリを開発する方法:「新しい」Android の採用
Bitotsav ’19 アプリ

修正と更新

数時間以内に (唯一の!) 2 つのバグに直面しましたが、すぐに修正しました。最初のものは、suspend とマークされている DAO メソッドに関連していました 、しかし、なぜそれが正確に起こったのか、まだ100%確信が持てませんか?. 2 つ目は難読化が原因でシリアル化が失敗し、Keep a で簡単に修正されました

その後、次の更新に取り掛かりました。フィードにリーダーボードを追加し、フェスのナイト イベントをスケジュールに追加するなど、いくつかの変更を加えました。 3 回目の更新に続いて、いくつかのマイナーな機能が追加されました。

フェストは成功し、アプリは 1000 人以上の参加者に利用されました!

私たちの友人である Sushant Gupta によるサーバーの誤った DB エントリが原因で、小さな問題に直面しました.

Bitotsav '19 Web サイトへの DDoS 攻撃
これは技術的な記事ではありません。これは私が共有したいストーリーであり、いくつかの Web とアプリの教訓になるかもしれません… cs.sonudoo.com

フェスティバルの後、最終更新をリリースし、イベントの詳細、フィードなどをアプリの一部として JSON として保存し、プライバシー上の理由から主催者の連絡先番号を編集しました。

公開します!

コードをオープンソースにする時が来ました!今回は、理解できるコードを書くように気を配り、世界に向けて準備が整いました。洗練された README を用意し、リポジトリの履歴から連絡先番号を削除するために、すばらしい BFG Repo Cleaner ツールを使用しました。

Bitotsav '19 アプリのコードが公開され、誰でもレビュー、参照、学習、使用できるようになりました。チェックして、? を残すことを忘れないでください。 ?

aksh1618/Bitotsav-19
Bitotsav '19 の公式アプリ。 GitHub でアカウントを作成して、aksh1618/Bitotsav-19 の開発に貢献してください。 github.com

チャレンジ?

開発中にいくつかの課題に直面しました:

  • 時間制限: 私たちが直面した主な課題は、非常に新しい概念を学び、それらを使用して何百人もの人々が使用するアプリを作成する時間が非常に限られていることでした.この時間的制約により、ストレスと疲労につながる長時間の継続的な作業が必要になりましたが、力を合わせて成果を上げることができました!
  • コルーチンを使用した WorkManager: 技術的な面では、WorkManager とコルーチンでいくつかの小さな課題に直面しましたが、それらを克服することができました。開発が進むにつれて、Android SDK 全体でコルーチンのサポートが向上することを期待していますか?
  • API 21: とにかく、ほとんどの Android デバイスは API 21 以降を使用しているため、すべてを古いバージョンで動作するように調整する必要がないように、最小 API 21 を選択しました。しかし驚くべきことに、API 21 で動作しないもの、特にビューの背景が拒否されました。本当にイライラして、最小 API を 22 に設定しておけばよかったと思いました。アプリが 2 つの API 21 デバイスにしかインストールされていないことがわかったときはなおさらでした。
  • デバイスの不足: 私たちが直面したもう 1 つの課題は、テストするのに十分なデバイスがないことでした。 Pantheon '17 では、200 人ほどのホステルがあったため、テストは簡単でした。今回はほとんどの人がインターンシップに行ってしまったので、私たちはコードに自信を持っていることに頼ることができました!
  • コード レビュー担当者なし: 私たちが使用したものの多くは私たちにとって新しいものであり、すべてが正しく行われていることを確認するために最善を尽くしました.しかし、レビュアーがいることは非常に役に立ちます。今でも、アプリのコードを簡単に確認していただければ幸いです。
  • アポカリプス:DDoS 」にも直面しました 上記のリンクにある Sushant のブログ投稿を読んでください。後悔することはありません!

テイクアウト ✅

  • Kotlin + Jetpack =❤️ : 主なポイントは、Android 開発は長い道のりを歩んできたことであり、Kotlin と Jetpack によって、間違いなくずっと楽しく、純粋に楽しいものになっています。真剣に、複数のオーガズムがありました コーディング プロセス中の瞬間!
  • 不可能なことはありません: ありふれた言い方ですが、一生懸命働く意志があれば、どんなに難しくても、何でもできるというのは本当です。確かに、ストレスの多い段階がありますが、力を入れ続けてください.自分を信じてください!

後悔?

  • Instant App や App Bundle はありません :私たちはちょうどこれを見逃しました.考えたこともありませんでした。ああ、それはまた次回に。
  • テストなし :なるほど、これは大きいですね!適切なテストを実施できれば大いに役立ったかもしれませんが、時間の制約から、まだ来ていない「後の」時期までテストを書かないことにしました。

TL;DR. ?

2019 年にアプリから始めますか?

Kotlin とコルーチンを使用する

  • Kotlin を学び、Kotlin だけを使用してください!
  • Android でコルーチンを使用する方法を学びます。

AndroidX で Jetpack コンポーネントを使用する

  • Single-Activity Architecture のナビゲーション コンポーネントの使用方法を学習します。
  • UI 用のライフサイクル コンポーネントと永続化のための部屋の使い方を学ぶ
  • データ バインディングを使用してください!
  • バックグラウンド処理に WorkManager を使用する方法を学びます。

材料コンポーネントを使用する

  • 材料コンポーネントのガイドライン
  • マテリアル コンポーネントの Android ドキュメント

テストを書きましょう!

できませんでしたが、絶対にすべきです!テストをスキップしないでください。

ソース コードを参照

.. これらのことを行うアプリの:Sunflower アプリ、IO アプリ、Dev Summit アプリ、またはもちろん、Bitotsav '19 アプリ! (また、星を残しますか?)

最新情報を入手

ブログやニュースレターを購読して、最新情報を入手してください!手始めに、Android Weekly、ProAndroidDev、AndroidPub、Kotlin Weekly をいくつか紹介します。圧倒する? Huyen Tue Dao による素晴らしい講演をご覧ください:

水のように:Android に遅れずについていく
360 AnDev からのトークを楽しんでいる場合は、Patreon を通じてカンファレンスをサポートしてください!モバイルで仕事をする上で欠かせないのは… academy.realm.io

では、行きましょう。これは、Android 開発にとって絶好の機会です。新しいアプリを使い始めて、楽しみながら開発を進めることを忘れないでください!

何かを学んだ場合は、コメントを残してください。建設的な批判を歓迎しますか?

Twitterで私を捕まえますか? 、LinkedIn ?または GitHub ??

次回まで??


  1. アプリの 2019 バージョンで TikTok をライブ配信するには?

    Tik Tok (以前は Musical.ly として知られていた) は、世界中でインターネット上でセンセーションを巻き起こしています。すべてはダブスマッシュ ビデオとリップ シンクから始まりましたが、驚くことに現在、Tik Tok は著名な「コンテンツ クリエーター」アプリと見なされています。個人的な意見とは少し異なりますが、Tik Tok は全世界で約 8 億回ダウンロードされており、著名人も注目しています。 Tik Tok の開発者は継続的に開発を行っており、アプリに多数の機能を追加してきました。これらの最近の開発の 1 つが Go Live でした。 ボタン。しかし、ファンまたはフォ

  2. Outlook for Android アプリでメールを設定する方法

    Outlook は、何十年にもわたって最も人気のあるメール管理ソリューションの 1 つであり、世界中の複数の個人や企業によって使用されています。コンピューターで電子メールにアクセスするために使用する主要なツールかもしれませんが、スマートフォンについて話すときは確かに同じではありません.しかし、Android スマートフォンで Outlook を構成するのは非常に簡単で、数分で完了します。どのクライアントよりも優れた方法で電子メールを整理するだけでなく、スパマーや犯罪者があなたに到達するのを困難にします.したがって、読者がAndroidでOutlookをセットアップする方法を学ぶことは価値があり