Modern Android Quickly bring your app to life with less code, using a modern declarative approach to UI, and the simplicity of Kotlin.
Flutter is Google's mobile UI framework for crafting high-quality native experiences on iOS and Android in record time… なぜFlutterに興味を持ったかFlutterはAndroidアプリ開発者ウケの方が良くて、iOSネイティブアプリ開発者が本気で触っている事例を国内ではあまり見聞きしません。そのためか、周りからも「iOSネイティブアプリが作れるのになぜFlutterにも手を出すの?」のようなことを聞かれることがちょくちょくあります。まずはそのあたりから詳しく述べていきます。 一番初めのきっかけはDroidKaigi 2018の発表DroidKaigi 2018 用のiOSアプリがFlutterで作られていて、 konifar さんのこちらのスライドを見たりPodcas
『メルカリ』 アプリの画面描画を高速化する技術、バックエンド・iOS・Androidの基本設計 多くのユーザーに愛されるフリマアプリ『メルカリ』ですが、そのスムーズな画面描画はどのような技術で生み出されているのでしょうか。同アプリの高速表示の秘密を、バックエンド、iOS、Androidの3方向からメルカリ社のエンジニア4人に聞きました。 バックエンドの高速化を支える技術 【Tips1】 画像のファイルサイズを最適化し、アプリ全体の通信量を抑える 【Tips2】データセンター間通信のレイテンシを抑える 【Tips3】アプリのありとあらゆる挙動を常にモニタリングする iOSアプリの高速化を支える技術 【Tips4】Objective-CからSwiftへの移行 & アーキテクチャの刷新 【Tips5】『UIStackView』を活用し、UIの描画をより滑らかにする Androidアプリの高速化を
ビューティ事業ユニットでエンジニアをしている索手です。 1月まではAndroidを担当していましたが、今ではバックエンドを担当しAPI開発を行っています。 今回は昨年行ったホットペッパービューティーのアプリリプレイスについて、Androidチームで採用した技術や実装方針についてお話ししたいと思います。 プロジェクトの背景 ホットペッパービューティーのネイティブアプリは、約6年間、様々な機能追加・変更を経る中で多くの技術的負債が溜まっていました。一方で、事業におけるアプリの重要度は高まっており、今後の更なる成長を見据えると、当時の状態で開発を続けることは困難でした。 そのような背景があり、アプリリプレイスがスタートしました。 プロジェクトの概要 本プロジェクトは、「安定かつ高速な開発」を目指し、仕様はそのままにネイティブアプリのコードを全て書き換えるというものでした。ドキュメントや既存のコー
去年Androidソースコードレビューで指摘する事が多い項目まとめという記事を書いた時はアプリ全体を一度に見るような機会が多かったため、内容も大きめのものばかり書いていましたが、最近はプルリクエスト単位でレビューする機会が増えたので細かい項目についてまとめてみようと思います。 ミリ秒で時間を指定する時に自前で計算している 1000L * 60L * 60L * 24Lのようなコード。 TimeUnitを使いましょう。 24時間の場合は以下のように書けます。 TimeUnit.DAYS.toMillis(1L) ある文字列がhttp/httpsで始まるかチェック URLUtil.isNetworkUrl()を使いましょう。 ただしequalsIgnoreCaseで判定してます。 ベースURLにパラメータを付与していってURLを生成したい StringBuilder#append("&key=
現在の Android Developers の情報は非常に充実していて、Developer Guides を順に読み進んでいくだけで開発に必要な知識とGoogleが想定している(であろう)最も基本的な実装を学ぶことができる。 特にこの「基本的な実装」というものが重要で、これを知っておかないと開発者間の意思疎通がスムーズに行えなかったり、そもそも気をつけておくべき注意点を見落としがちになってしまう。 とはいえ、今の膨大な公式ドキュメントをただ読めというのは厳しいので、Android開発をする上で最低限理解しておいてほしい(と僕が思っている)事柄と、それについて知ることができるドキュメント類についてまとめてみることにする。 2018/03/25 : リリース周りについて別記事に追記した。 nein37.hatenablog.com 公式ドキュメントの重要ページ 公式ドキュメントと言った場合、
Androidアーキテクチャことはじめ ― 選定する意味と、MVP、Clean Architecture、MVVM、Fluxの特徴を理解する Androidアプリの開発において悩ましいアーキテクチャの選定。本記事では選定する意味を改めて整理し、 MVP・Clean Architecture・MVVM・Fluxといった最新の実例を紹介します。 はじめまして。Androidエンジニアの藤原聖(ふじわら・さとる/@satorufujiwara)です。 現在は株式会社サイバーエージェントで、エンジニアリングマネージャーを兼任しています。2017年で35歳になり、定年を迎えました(プログラマの定年については「体型を支える技術」などを参照)。 Androidアプリ開発には2010年から携わっていますが、今現在の関心事は何といっても公式開発言語に採用されたKotlin。そしてもう一つが、Androidの
Kotlinの入門がてら作ったのですが、リリースに至るまでの流れとか利用してるライブラリとかの話しをしようかなと思います。 play.google.com ざっくり以下の話しをしようと思います。 作ったものについて 開発期間について Kotlinについて 利用したライブラリなどについて CIについて タスク管理について 作ったものについて 画面はこんな感じで普通にRecylerViewでのリスト表示です。 今回は、Android Architecture ComponentsのPagingLibraryを使ってかなり楽できました。(またあとで説明します) このアプリの自分の用途について 毎クール30作品とか全部見てると時間がいくらあっても足りないので、 視聴中アニメでモチベーションが低くなってる作品のステータスを(見てる -> 一時中断 -> 視聴中止)にちゃんと更新したかった。 というモ
Androidをはじめたばかり or これから始める人向けにまとめました。UI系ライブラリは種類が多すぎるので除外しています。 公式系 1. サポートライブラリ developer.android.com ※種類が多いのでまとめて1つとカウントしました Androidの後方互換性を維持するために、Googleが提供しているライブラリ群です。機能ごとにパッケージが分かれていますが、ほぼ必須のものが多いです。 appcompat support-v4 multidex design recyclerview cardview etc 2. Data Binding developer.android.com レイアウトにデータを紐付けることで、データの更新に応じて自動的にビューを更新することができるライブラリです。レイアウトの属性を増やしたり、findViewByIdを簡略化するだけでも使えま
業務でソースコードレビューを行う機会が増えたので、複数回指摘した項目や気になった実装などをまとめてみました。 こういう観点をできる人と共有できるといいなあ…。 2014/09/29 23:00 一部修正しました。 業務上ソースコードレビューの名目で仕様・デザインまで見ることになっていたためこれらを先頭に書いていましたが、わかりづらかったため最後にまとめました。 Fragment関連 FragmentとActivityの密結合 Fragmentが特定のActivityから呼ばれることを想定して書かれている場合、そのFragmentとActivityは密結合である場合が多いです。 具体的には、以下の様な実装です。 ActivityのViewを参照する Activityのメソッドを直接呼び出す なぜダメか Fragmentの利点のひとつは優れた再利用性にあります。 Fragmentが特定のAct
※目指せ100。 ○小判は猫に渡したくない 「便利なライブラリとかOSS集を教えて欲しい」と、たびたび聞かれるのですが、実際のところ動かして評価しないと分からないんですよね。教えてもキーワードのみ鵜呑みにして使い方間違ってる人とか多くて、結局試行・評価をそれなりのスピードで回せる人じゃないと使いこなせないというか...。 ですが、「知ってる・知らないというゼロイチの差はあるだろう」という指摘をもらい、またどれだけ知っているかのチェックリストとしては使えるのではないだろうか、ということで並べてみることにしました。 使ったことが無いのは挙げていませんが、いかんせん数年経ってますので状況が変わっていたらすいません。 以下、リスト。 Apache Commons http://commons.apache.org/ 「5行+エラー処理」を1行に済ませてくれるUtil群が主体。 IO、Lang、Co
制限 同時に再生できる音源は1ファイルのみ 再生できるタイミングはユーザイベントのハンドラ内だけ プリロード不可 OS自体のサイレントモードと連動せず BGMを流すだけならこんな方法も $('<div>BGMを再生しますか?</div>').appendTo('body').click(function () { $(this).remove(); (new Audio('bgm.mp3')).play(); }); $('body').on('click', 'a', function (e) { e.preventDefault(); $.get($(this).attr('href')).success(function (html) { $('body').html(''); $('body').append($(html).find('body')); }) });
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く