AndroidStudio + KotlinでCountDownTimerを使ったアプリを作ったのですが、無視できないレベルで時間がずれる。。。 ここでは誤差を補正する方法について説明します。 問題点最初、時間のカウント処理をするためにCountDownTimerクラスを使ったのですが、カウントする時間に誤差が発生します。 調べてみると2つのタイプの誤差がありました。 常に発生する誤差。1分当たり1~2秒ずれるスリープ時に発生する誤差。1分当たり数秒~数十秒ずれるいずれも時間計測するアプリとしては致命的です。 解決方法結論から言うと以下3つの方法を実装して解決しました。 coroutineでカウント処理を非同期にする誤差を補正するロジックを入れるスリープ時の大きな誤差に対処する順を追って説明します。 1.Coroutineでカウント処理を非同期にする同期処理・非同期処理の概要についてはこち
最近よくAndroidエンジニアが足りない、採用難しいって話をよく聞くので、ぼくが感じてることを書きたいと思います。 すべての状況を理解してるわけでもなく、ぼく自身が感じてることなので、そこはご了承ください。また、Androidエンジニアを特別に優遇しろというわけではないので誤解しないようにしてもらえると。 Androidエンジニアは本当に少ないのか?ぼくはAndroidエンジニアは少ないとは思っていないです。ただメインでAndroidエンジニアをやっている人は少ないとは思います。 ぼくは昔はAndroidのコードを書いていたという人を何人か知っていますし、iOSがメインだけどAndroidもやってるっていう人も知っています。 なので、Android開発の経験者としてみると、そこそこの人数がいると考えています。 何かしらの理由がありメインではやらない、やりたくないっていう人もいるかもしれま
なぜ日本語UIキットを公開するのか? デザインチームの研究活動のひとつとして、体験設計やUIデザインの品質を高めたり、デザインチーム内の協働を円滑に行うために、汎用的なデザインテンプレートやデザインアセットを作成し、体験デザインプロセスの仕組み化と共有を行っています。 UIデザインにおいても、Figma Communityをはじめとした様々な媒体でUIキットが共有・配布されており、UIキットを参考にデザインワークを行うというケースが増えてきているかと思います。 一方でUIキットの多くが欧文フォントで構成されているため、日本語フォントに変換する必要があり、場合によってはサイズやレイアウトを微調整しなくてはなりませんでした。 このUIキットも、単にAppleやGoogleのUIコンポーネントを日本語化しているだけと言えばそうかもしれませんが、これを活用することでデザイナーやプロダクト開発に携わ
私が一番最初にAndroid アプリをデザインしたのが2016年の初夏頃で、その頃はまだiOS・Android とデザインが違うのが主流でしたが、2021年現在のアプリはiOS もAndroid もプラットフォームごとの細かな違いはあれどほぼ同じデザインが主流となっています。 これは2016年の10月にAndroid APIがBottomNavigationView に対応してからじわじわ浸透していった変化だと考えているのですが、その辺の歴史の話は省略します。プラットフォームは違えどスマートフォンアプリである以上デザインは同じ方が楽なので、共通化されていったのは自然な流れだと思います。実際両者が全然違うUI・デザインだと大変ですしね……。 とはいえ、プラットフォームが違うので全て同じというわけにもいきません。iOS にはHuman Interface Guidelines、Android
2021年5月18日(現地時刻)Google I/O 2021 KeynoteよりAndroid関連のトピックをお届けします。2年ぶりのGoogle I/Oはデジタルイベントとして開催、すでにオンライン上に全セッションが公開されています。 Keynote、Develoer KeynoteそしてWhat’s new in Android、What’s new in Google PlayよりAndroidやモバイル分野の新機能を紹介します。パーソナライゼーションおよびプライバシーを中心にJetpack Composeなど新機能・新技術が目白押しです。本記事ではモバイル業界の動向と共にAPIやテクノロジーを解説します。 Google I/O 2021はデジタルイベントとして開催(Google I/O Keynoteより) キーノートの動画は公開されており、YouTubeより視聴できます。わかり
How to bring your iOS experiences to Android in record time
#TheAndroidShow: Jetpack Compose Livestream のQ&A部分がかなりの情報量だったので、抜粋してメモ的に書き起こしてみました。 (Q&Aは12:10あたりから) Q: Composeはレンダリングのパフォーマンスを期待できる状態なのか 全体としてのパフォーマンス いくつかまだ最適化されきってない箇所があるが、全体としてViewに対してパフォーマンスは向上している。 Layoutのmeasureは大体の場合でViewより向上している layout modifier APIがAlphaの初期から変わってない部分があるが、修正を加えている compositionでは、初期化と更新とでプロセスを分けて簡素化させようとしている これでパフォーマンスの向上が見込めるはず multi-threading API マルチスレッドAPIがexperimentalとして
シャットダウンが延期されました 読み取り専用として存続します JCenter のシャットダウンについては2022年2月1日へ延期になりました。 https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/ UPDATE: To better support the community in this migration, JFrog has extended the JCenter new package versions submission deadline through March 31st 2021. To clarify, the JCenter repository will keep serving packages for 12 months until February
ちょっと30分ぐらいで書いた小ネタで申し訳ないんですが、すごく簡単で、便利なので、アドベントカレンダーで紹介します。 Android Studioの自動フォーマットだとKtLintで指摘されるものを修正できず、Formatterをコミット前やビルド時に走らせるのもコード量に比例して遅くなりそうで、また変更したところだけフォーマットさせたいですがうまくできません。コミットのたびに時間かかりそうで微妙で、なにか解決策を探していました。 これを調べ始めて30分程度でできちゃったので、すごく簡単に機械的にレビューさせられるので、ちょっと試してみてください。 インデントを直すsuggested changeの例 使うツール Spotless 変更したファイルを検出してFormatterを呼び出してくれたり、いろいろな機能があります。(JetNewsなどGoogleのOSSなどでも使われています。)
本記事はAndroid Advent Calendar 2020の2020/12/01分です。 初っ端ということなので、2020年末と2021年頭でのAndroidエンジニアとして初めて業務でやる場合に抑えておいたほうが良い最低限の部分を書いていこうと思います。(ツッコミ待ちです) 対象 2021年3月ぐらいまでに !!業務!! でAndroidアプリを作らされる事になった可愛そうな人が居たとします この人は手続き型言語でオブジェクト指向プログラミングができる知識があり、Androidアプリもなんとなく趣味で作ったこともあるぐらいのレベル感です(なので上長からいきなりお前Android担当なと言われた) 最低限のAndroidアプリの作成の知識はあるものとします(画面の表示にはActivityがいるよとかは書かない) ゲームは対象外です 業務でAndroidアプリを作ることを想定しています
DevFestの資料の記事版です。ステップごとにサンプルアプリの差分付きで説明します。 なぜDependency Injectionが必要なのか から始め、Dagger Hiltの説明、実践的なプラクティスまで説明していきます! Dependency Injection(DI)とはなにか なぜDIが必要なのか DI、ちょっと難しいイメージありますが、そもそもなんで必要なんでしょうか? 作っているのが動画再生するアプリでVideoPlayerというクラスがあるとしましょう。 VideoPlayerのクラスの中にデータベースやcodecなどがハードコードされています。 コード: https://github.com/takahirom/hilt-sample-app/commit/8c36602aaa4e27d8f10c81e2808f0ff452f1c8a4#diff-bbc9d28d8bc
1.はじめに 私は(筆者は)モバイルエンジニア転職を目指す立場です。個人的にアプリのUIデザイン知識はデザイナーだけでなくエンジニアにも必須だと思っています。私自身がアプリ開発の過程でデザインについて指摘され、「このままデザインに無知では良くないと思った」、「同じような立場の方にモバイルアプリのデザインの事を少しでも知ってもらいたいと思った」その2つの理由から本記事を執筆しました。 現在、エンジニアを目指している方やアプリ開発はしているけどモバイルデザインについて改めて知りたいという方、そのような方向けに改めてiOS・Android双方のデザインガイドラインについてまとめてみました。 2.iOSとAndroidのデザインの考え方 2020年現在、iOSではHuman Interface Guidelines、AndroidではMaterial Designの考え方をもとにアプリUIが作られ
Lunch Atop a Skyscraper by BalakovSubtle oversights with more or less serious consequences - even if you’re not making these mistakes it should be worth keeping them in mind to avoid running into some problems in future. This article covers: Leaking LiveData observers in FragmentsReloading data after every rotationLeaking ViewModelsExposing LiveData as mutable to ViewsCreating ViewModel’s dependen
Dagger + ViewModelの基本編 + 実例編 Updated at Fri, Jan 18, 2019 この記事はDaggerとJetpackのViewModelをある程度知っている前提で進んでいきます😃 基本編 一緒にDagger + ViewModelを使うのはツラミがあります。それは、ViewModelのインスタンス生成はViewModelProviderを介して行う必要があるためです。 例えば、次のコードは間違っています。 class MainViewModel @Inject constructor(...): ViewModel() class MainActivity { @Inject lateinit var viewModel: MainViewModel ... } class MainViewModel(...): ViewModel() @Modul
春ぐらいからFRESH LIVEの配信アプリFRESH CASTを開発しています。 FRESH CASTのDIはDagger2 Android Supportを採用しているのですが、試しにKoinに書き換えてみたので共有します。(リリースはしないと思う) 移行については後半書きます。 *参考にしているKoinのバージョンは1.0.1 Koin? Kotlin製のDIライブラリです。ReflectionとDelegatedPropetiesを使ってdependencyをinjectしてくれます。 Dagger2のようにJSR-269(AnnotationProcessing)によってコードを自動生成するような作りにはなっていません。 したがって、人間が手で依存性を解決するコードを書かなければなりませんが、提供されているExtensionFunction, TopLevelFunction,
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く