Jetpack ComposeとGraphQLによるServer Driven UI/jetpackcompose-grahpql-serverdrivernui
#11WeeksOfAndroid 18 #Android12 1 #AndroidDevJourney 1 #androiddevsummit 5 #GoogleIO 19 #WeArePlay 3 12l 1 5 star apps 1 Ads 1 advertising 1 AGDE 1 AGDK 2 AGI 1 AI 3 AI Announcements beginner Explore Generative AI 1 AI Announcements beginner Explore Generative AI、 1 Android 106 Android 10 1 Android 11 1 Android 12 Beta 5 1 Android 12L 1 Android 13 3 Android 14 7 Android 14 Beta 4 1 Android 14 ベータ版
この記事は アプリの設計は大切 最近私がコツコツやっている勉強方法を紹介させてください。 Androidに特化しているというよりかは、アプリの設計を考える練習です。 ここでいう設計とはMVVMとかクリーンアーキテクチャなどのアーキテクチャとはまた異なる概念です。 どういうデータ構造にしているとデータを画面に表示しやすくなるかや、どのメソッドをどのレイヤーで管理するかなどを考えます。 アプリをつくる時にどのような設計にするかは、アプリの今後に大きく影響します。 設計がめちゃくちゃだと、たとえばホーム画面とプロフィール画面でいいねの数が違ってしまったりします。 表示されるデータに一貫性がなく、画面によって異なる情報が提示されるのはバグです。 アプリの設計を疎かにするとバグを生みやすくなり、機能追加などがむずかしくなります。 アプリの設計を考える勉強法 新卒で超スタートアップに行って全部一人でつ
Mirrativ Androidエンジニアのmorizoooです。今回はAndroidアプリをFluxにリアーキテクチャした話をします。 背景 Mirrativは2015年春頃に開発が始まり、もうすぐリリースから6周年を迎えようとしています。以前はアーキテクチャについてのルールが決まっておらず、個々人が思うがままコードを書いており、開発しているメンバーでさえ処理の流れが追えなくなっているような状況でした。そこで、まずは既存のコードの改善を行いました。詳しくは以下の記事をご覧ください。 tech.mirrativ.stream 既存コードを改善した後に、開発の指針としてFluxアーキテクチャを選定しました。 Fluxを選定した理由 状態がどこで更新されているのか分からなくなるという一番の課題が、Flux の導入によって解消できそうだった iOSはFluxで実装していくという話が出ており知見を
こんにちは。ミラティブのAndroidエンジニアのかねき@kanesyです。 以前の記事でも何度か紹介していますが、MirrativのAndroidアプリでは新規で作る画面には積極的にJetpack Composeを活用しています。 tech.mirrativ.stream Jetpack Composeでの開発が活発になるにつれて、Viewの多重タップや、リスト中の複数アイテムの同時タップなどの想定外の挙動に向き合う必要が出てきました。 そこで今回は、MirrativのAndroidアプリで採用したJetpack ComposeにおけるViewの多重タップや、リスト中のアイテムの複数同時タップに対する取り組みについて紹介します。 Android Viewにおける多重タップ防止 Jetpack Composeでの実装の説明に移る前に、まずは既存のAndroid Viewにおける多重タップ防
こんにちは、マンガアプリチームの id:nabe1216 です。 2021年11月より、はてな開発のマンガビューワのアプリ版「GigaViewer for Apps」を提供開始し、最初の導入事例として「コミックガルド+(プラス)」がリリースされました。 GigaViewer for Appsは各社のマンガ配信サイトで採用されている「GigaViewer for Web」のアプリ版で、GigaViewer for Webと同様にさまざまな規模のマンガアプリが導入できるように開発しています。 hatenacorp.jp GigaViewer for AppsのUI周りは全て、Androidで新しく登場した宣言的UIフレームワークであるJetpack Composeで実装しています。この記事ではJetpack Composeの使い方や、関連して採用した技術について紹介します。 Jetpack C
こんにちは、クライアントエンジニアの竹澤(@to4iki)です。 MirrativのiOSチームでは、開発効率の最大化を狙い以下に取り組んでいます。 データフローの単方向化 (Fluxアーキテクチャの強制) 宣言的UIによるView実装 (SwiftUIの部分適用) 責務分割 (モジュール分割) 今回の記事では、どのような構成でSwiftUIを適用し始めたか、また、MirrativのiOSプロジェクトの構成やプロダクト特性の課題感からセットでモジュール分割を進めている点を紹介します。 背景 前提となるプロジェクト構成 導入に向けて決めたこと SwiftUIでどこまで実装するか 本体アプリではなくSwiftPackageを活用する 垂直分割するか水平分割するか 方針やTipsを明文化し育てる 新規開発部分のUI開発をFeatureモジュールで行う SwiftPackage: SwiftUI.
Mirrativ Androidエンジニアのmorizoooです。 MirrativのAndroidアプリでは、Jetpack Composeの1.0がリリースされた2021年7月から導入をはじめています。 今回の記事では、導入に至った経緯と、ミラティブで採用しているFluxアーキテクチャの中でJetpack Composeをどのように活用しているかについてお話します。 導入に至った背景 Jetpack Compose導入の背景としては公式ドキュメントにもあるように以下の点をメリットに感じて導入しました。 コード量が削減できること ステートレスコンポーネントを簡単に作成できること developer.android.com また、Jetpack Composeの開発に深く携わっているJim Sprochさんもツイートでも、旧Android Viewはメンテナンスモードと宣言されており、Je
#11WeeksOfAndroid 18 #Android12 1 #AndroidDevJourney 1 #androiddevsummit 5 #GoogleIO 19 #WeArePlay 3 12l 1 5 star apps 1 Ads 1 advertising 1 AGDE 1 AGDK 2 AGI 1 AI 3 AI Announcements beginner Explore Generative AI 1 AI Announcements beginner Explore Generative AI、 1 Android 106 Android 10 1 Android 11 1 Android 12 Beta 5 1 Android 12L 1 Android 13 3 Android 14 7 Android 14 Beta 4 1 Android 14 ベータ版
#11WeeksOfAndroid 18 #Android12 1 #AndroidDevJourney 1 #androiddevsummit 5 #GoogleIO 19 #WeArePlay 3 12l 1 5 star apps 1 Ads 1 advertising 1 AGDE 1 AGDK 2 AGI 1 AI 3 AI Announcements beginner Explore Generative AI 1 AI Announcements beginner Explore Generative AI、 1 Android 106 Android 10 1 Android 11 1 Android 12 Beta 5 1 Android 12L 1 Android 13 3 Android 14 7 Android 14 Beta 4 1 Android 14 ベータ版
#11WeeksOfAndroid 18 #Android12 1 #AndroidDevJourney 1 #androiddevsummit 5 #GoogleIO 19 #WeArePlay 3 12l 1 5 star apps 1 Ads 1 advertising 1 AGDE 1 AGDK 2 AGI 1 AI 3 AI Announcements beginner Explore Generative AI 1 AI Announcements beginner Explore Generative AI、 1 Android 106 Android 10 1 Android 11 1 Android 12 Beta 5 1 Android 12L 1 Android 13 3 Android 14 7 Android 14 Beta 4 1 Android 14 ベータ版
自分は仕事で電話機のカメラアプリ開発を手伝っている。 なのでカメラアプリから見るとどうかを中心に議論してみたい。 電話機の CPU はどのくらい使われているのか 電話機の CPU, 最近だと 8 コアくらいある。こいつらを活用したい。 わけだけれど、まず現実にはどのくらい活用されているのか実例を眺めてみる。 ちょっと前に自分のブログで Perfetto というトレーシングツール (プロファイラだと思ってください)を紹介した。 その中で実際にいくつかのアプリのトレースを集めた。手頃な実例になっている。 アプリの起動 このデータ をダウンロードして、ui.perfetto.dev から開いてほしい。 以下画面写真: このトレースは Pixel 2 という電話機の上で TikTok というアプリの起動直後 5 秒間をキャプチャしている。 細かいところはわからなくていいけど、“CPU 0” から
#11WeeksOfAndroid 18 #Android12 1 #AndroidDevJourney 1 #androiddevsummit 5 #GoogleIO 19 #WeArePlay 3 12l 1 5 star apps 1 Ads 1 advertising 1 AGDE 1 AGDK 2 AGI 1 AI 3 AI Announcements beginner Explore Generative AI 1 AI Announcements beginner Explore Generative AI、 1 Android 106 Android 10 1 Android 11 1 Android 12 Beta 5 1 Android 12L 1 Android 13 3 Android 14 7 Android 14 Beta 4 1 Android 14 ベータ版
こんにちは。Androidエンジニアの伊藤です。 スギサポwalkという歩数計アプリの開発を担当しており今回は Jetpack Composeを導入したので、この取り組みについて書いていきます! Jetpack Composeとは なぜ導入しようと思ったのか どのように導入していったのか? 問題の解決 プロダクトへの導入方針 実際に導入した箇所の説明 連続ログインボーナス 画面構成について レイアウトについて 工夫した点 改善点 実際に導入してよかったこと 今後の課題 Jetpack Composeとは Jetpack ComposeはAndroidの新しいUIツールキットです。 宣言的UIとも呼ばれ、状態をUIとして表示するという仕組みです。 AndroidでUI開発を簡素化して、直感的なAPIにより良い開発体験が得られます。 また、数多くのAndroidのプロダクトで利用されています。
DroidKaigi2022に参加してきました モバイルエンジニアの工藤です。 アンドパッドも協賛しているDroidKaigi2022に参加してきました。開催期間は2022/10/05~2022/10/07の3日間で、この記事はその1日目のレポートです。写真を中心に、現場の雰囲気を知ってもらえたらと思います。 入り口のパネル。ドロイド君がかわいい tech.andpad.co.jp ブースの様子 私は3回目の参加になりますが、オフライン開催は3年ぶりのため新鮮な気持ちで参加することができました。Twitterだけで知っていたエンジニアさんや昔の同僚と会うことができ、オフラインの良さを実感できた1日でもありました。 スタンプラリーの際に他社の採用担当の方ともお話しましたが、どこも採用に困っているようです。会場にはこれほどいるのに、一体なぜなのでしょうか・・・? 存在しないと言われているAnd
はじめに 昨今Android/iOSネイティブアプリの開発では「宣言的UIを利用したUIフレームワーク」(以下、このようなフレームワークを宣言的UIフレームワークと本記事では呼称します)が台頭しようとしています。この流れは、Reactの考え方やそれ自体を利用したFlutterやReactNativeのようなマルチプラットフォームフレームワークから始まり、AndroidではJetpackCompose、iOSではSwiftUIと、現在はそれぞれのプラットフォームにも取り込まれるまでになっています。 宣言的UIフレームワークは旧来の手続き的な方法よりもより直感的にUIを記述することができ、採用することでViewの構築をより効率よく行うことができます。これまでは既存のアプリケーションにこの方法を取り入れようとした場合、FlutterやReactNativeであれば新規に言語すら違うフレームワーク
TL;DR React SWRをJetpack Compose向けに移植して公開したぞ! 前置き もし今からモダンなAndroidアプリをゼロから書こうと思ったらおそらくJetpack Composeを採用したいという人が多いかと思います、いわゆる宣言的UIと呼ばれるやつですね。 この宣言的と呼ばれるトレンドはUIだけに適用されているものなのでしょうか? AndroidというプラットフォームだけでみてもCompose以外で宣言的に書ける部分は年々広がってきています。 例えば遷移先の画面から値を受け取るstartActivityForResult()+onActivityResult()は非推奨になり、代わりにregisterForActivityResult()を宣言する形に置き換わりつつあるのは周知の通りです。 また、画面のライフサイクルのハンドリングはActivityのonStart(
2021年7月にJetpack ComposeのVersion 1.0がリリースされました。Jetpack Composeは、Kotlinで宣言的にUIを記述する、まったく新しいAndroidのUI記述方法です。このJetpack Compose入門では、導入から詳細まで、Jetpack Composeの便利さを伝えていきたいと思います。 Jetpack Compose一問一答もよろしくお願いします。 目次 導入編 Jetpack Composeのメリット開発環境Hello World! テンプレート利用編Hello World! 手動設定編 基本編 基本編の目標基本編のベースとなるプロジェクト文字列を表示するコンポーネントを装飾する画像を表示するコンポーネントを配置するボタンクリックでUIを更新するTextFieldで文字入力欄を作るUIの階層化と制御構文基本編まとめ 実践編 画面遷移V
#11WeeksOfAndroid 18 #Android12 1 #AndroidDevJourney 1 #androiddevsummit 5 #GoogleIO 19 #WeArePlay 3 12l 1 5 star apps 1 Ads 1 advertising 1 AGDE 1 AGDK 2 AGI 1 AI 3 AI Announcements beginner Explore Generative AI 1 AI Announcements beginner Explore Generative AI、 1 Android 106 Android 10 1 Android 11 1 Android 12 Beta 5 1 Android 12L 1 Android 13 3 Android 14 7 Android 14 Beta 4 1 Android 14 ベータ版
マテリアルデザインを簡潔に記述できる「Jetpack Compose」がバージョン1.0に到達、本番環境で安心して利用可能に Googleは、Androidのネイティブアプリケーション向けUIツールキット「Jetpack Compose」がバージョン1.0に到達したことを発表しました。 Version 1.0 of #JetpackCompose is here! See how Android's modern, native UI toolkit is fully stable and ready for you to adopt in production ↓ https://t.co/IF2Z281hWn — Android Developers (@AndroidDev) July 28, 2021 Jetpack Composeはマテリアルデザイン対応のUIツールキットです。そ
【マルチデバイスチーム ブログリレー1日目】 イントロダクション こんにちは、エンジニアリンググループ・マルチデバイスチーム(以下「マルデバ」)の星野です。 エムスリーのエンジニアリンググループは、サービス開発を行う「事業チーム」と、各事業チームを横断してサポート/開発する「横断チーム」とに分かれております。私が所属するマルデバは「横断チーム」に位置し、各サービスの iOS / Android アプリ(およびそのBFF)の開発を専門に行なっており、私は主にこの後に紹介する m3.com アプリ、Web 講演会アプリ、m3.com CAREER アプリの開発を行っています。 今日から6日間「マルチデバイスチーム ブログリレー」と題し、マルデバメンバーでリレー形式でテックブログを執筆し、マルデバがどのような開発をしているのか・どんなチームなのか・どんなメンバーがいるのかなど、ご紹介できればと思
「キャリトレ」では「アーキテクチャファースト」を軸に据えて、Androidリニューアルプロジェクトを進めました。結果的に、プロジェクトの進行がスムーズに終わり、リリース後10ヶ月経った今でもなお、リニューアルをした効果を感じています。この記事では、アーキテクチャファーストの施策を振り返り、現在、どのような効果につながっているのかを紹介します。 「キャリトレ」は2022年12月21日をもってサービス終了しました。 ゼロからの出発となったリニューアルプロジェクト キャリトレ事業部スマートデバイスグループにて、「キャリトレ」Androidアプリの開発を担当しております萩尾と申します。2020年12月、挑戦する20代の転職サイト「キャリトレ」は、スマートフォンアプリをフルリニューアルしました。 「キャリトレ」のリニューアルプロジェクトは、単なるアプリケーションの作り直しにとどまらず、多くの機能追加
#11WeeksOfAndroid 18 #Android12 1 #AndroidDevJourney 1 #androiddevsummit 5 #GoogleIO 19 #WeArePlay 3 12l 1 5 star apps 1 Ads 1 advertising 1 AGDE 1 AGDK 2 AGI 1 AI 3 AI Announcements beginner Explore Generative AI 1 AI Announcements beginner Explore Generative AI、 1 Android 106 Android 10 1 Android 11 1 Android 12 Beta 5 1 Android 12L 1 Android 13 3 Android 14 7 Android 14 Beta 4 1 Android 14 ベータ版
#11WeeksOfAndroid 18 #Android12 1 #AndroidDevJourney 1 #androiddevsummit 5 #GoogleIO 19 #WeArePlay 3 12l 1 5 star apps 1 Ads 1 advertising 1 AGDE 1 AGDK 2 AGI 1 AI 3 AI Announcements beginner Explore Generative AI 1 AI Announcements beginner Explore Generative AI、 1 Android 106 Android 10 1 Android 11 1 Android 12 Beta 5 1 Android 12L 1 Android 13 3 Android 14 7 Android 14 Beta 4 1 Android 14 ベータ版
#11WeeksOfAndroid 18 #Android12 1 #AndroidDevJourney 1 #androiddevsummit 5 #GoogleIO 19 #WeArePlay 3 12l 1 5 star apps 1 Ads 1 advertising 1 AGDE 1 AGDK 2 AGI 1 AI 3 AI Announcements beginner Explore Generative AI 1 AI Announcements beginner Explore Generative AI、 1 Android 106 Android 10 1 Android 11 1 Android 12 Beta 5 1 Android 12L 1 Android 13 3 Android 14 7 Android 14 Beta 4 1 Android 14 ベータ版
Jetpack Compose v1.2.0 Design Division 所属アプリエンジニアのスージです。 良いデザインでクライアントのビジネスを前進させるために開発している、Jetpack Compose と KMM が好きなエンジニアです。 Jetpack Compose の バージョン 1.2.0 が rc になりました。フォントのパディングの改善を含め、たくさんのAPIの追加や更新があります。 medium.com その中で個人的に気になった API を紹介しようと思います。 movableContentOf LazyGrid にも animateItemPlacement 追加 TextStyle に Brush の追加 新しい @Preview デバイス追加 kotlinx.collections の @Stable 推論 LazyLayout 終わりに movableC
こんにちは! スタメン TUNAG 事業部 モバイルアプリグループのカーキです。 最近では主として Android アプリの開発に携わっています。 株式会社スタメンでは7月の初めに『TUNAG 受付』という、TUNAGのチャット機能を利用したオフィスの受付アプリをリリースしました(Androidのみ対応) (ストアリンク) 『TUNAG 受付』はUIの部分を全て Jetpack Compose で記述しており、アプリ全体の構成もJetpack Composeに合わせたものになっています。 (過去のJetpack Compose導入の経緯などはこちらのブログをご参照ください) 今回は『TUNAG 受付』のアーキテクチャ及び、その構成について紹介します。 TUNAG 受付について まず初めに『TUNAG 受付』がどのようなサービスかについて紹介します。 「TUNAG 受付」では、主に以下の2つ
Wrapping up @momeemtさんの記事にある通り、入力を受け取ってそれを変換して出力するというのは、プログラミングの基本ーー大きく言うと、つまり湯婆婆はこれからの"Hello, World"における例題の一つのような気がしています 将棋の原田泰夫九段が提唱された**三手の読み(こうやる、こう来る、そこでこう指す)**に通じるものがあるような気がします 令和のHello World!との呼び声も!(@everylittle さん) 令和2年なのに未だにRaspberry Pi 2しかもっていない私の虎の子のRaspberry Pi 2が毎日自動更新しております コミット 自動更新は、Elixirというプログラミング言語がありまして、そのElixirで作られたNervesというナウでヤングなcoolなすごいIoTフレームワークを使ってつくったアプリケーションで行っております Ner
こんにちは。スマートバンクで iOS / Android エンジニアをしている nakamuuu です。 先日リリースした新しいメンバーシッププラン「B/43プラス」では支払いの明細へ画像を添付できるようになりました!添付した画像は明細画面にサムネイル状に表示され、タップするとプレビュー画面へと遷移して画像が大きく表示されます。 今回、私はこのような画像のプレビュー機能を iOS / Android の両OSそれぞれで SwiftUI / Jetpack Compose を用いて実装しました。 このエントリーでは SwiftUI / Jetpack Compose の各フレームワークにおけるジェスチャー操作のAPIや振る舞いの差異を踏まえつつ、 “よくある画像のプレビュー画面” を実装するにあたっての知見を紹介していこうと思います。 プレビュー画面の要件 上述したプレビュー画面ではユーザー
#11WeeksOfAndroid 18 #Android12 1 #AndroidDevJourney 1 #androiddevsummit 5 #GoogleIO 19 #WeArePlay 3 12l 1 5 star apps 1 Ads 1 advertising 1 AGDE 1 AGDK 2 AGI 1 AI 3 AI Announcements beginner Explore Generative AI 1 AI Announcements beginner Explore Generative AI、 1 Android 106 Android 10 1 Android 11 1 Android 12 Beta 5 1 Android 12L 1 Android 13 3 Android 14 7 Android 14 Beta 4 1 Android 14 ベータ版
#11WeeksOfAndroid 18 #Android12 1 #AndroidDevJourney 1 #androiddevsummit 5 #GoogleIO 19 #WeArePlay 3 12l 1 5 star apps 1 Ads 1 advertising 1 AGDE 1 AGDK 2 AGI 1 AI 3 AI Announcements beginner Explore Generative AI 1 AI Announcements beginner Explore Generative AI、 1 Android 106 Android 10 1 Android 11 1 Android 12 Beta 5 1 Android 12L 1 Android 13 3 Android 14 7 Android 14 Beta 4 1 Android 14 ベータ版
#11WeeksOfAndroid 18 #Android12 1 #AndroidDevJourney 1 #androiddevsummit 5 #GoogleIO 19 #WeArePlay 3 12l 1 5 star apps 1 Ads 1 advertising 1 AGDE 1 AGDK 2 AGI 1 AI 3 AI Announcements beginner Explore Generative AI 1 AI Announcements beginner Explore Generative AI、 1 Android 106 Android 10 1 Android 11 1 Android 12 Beta 5 1 Android 12L 1 Android 13 3 Android 14 7 Android 14 Beta 4 1 Android 14 ベータ版
#11WeeksOfAndroid 18 #Android12 1 #AndroidDevJourney 1 #androiddevsummit 5 #GoogleIO 19 #WeArePlay 3 12l 1 5 star apps 1 Ads 1 advertising 1 AGDE 1 AGDK 2 AGI 1 AI 3 AI Announcements beginner Explore Generative AI 1 AI Announcements beginner Explore Generative AI、 1 Android 106 Android 10 1 Android 11 1 Android 12 Beta 5 1 Android 12L 1 Android 13 3 Android 14 7 Android 14 Beta 4 1 Android 14 ベータ版
#11WeeksOfAndroid 18 #Android12 1 #AndroidDevJourney 1 #androiddevsummit 5 #GoogleIO 19 #WeArePlay 3 12l 1 5 star apps 1 Ads 1 advertising 1 AGDE 1 AGDK 2 AGI 1 AI 3 AI Announcements beginner Explore Generative AI 1 AI Announcements beginner Explore Generative AI、 1 Android 106 Android 10 1 Android 11 1 Android 12 Beta 5 1 Android 12L 1 Android 13 3 Android 14 7 Android 14 Beta 4 1 Android 14 ベータ版
#11WeeksOfAndroid 18 #Android12 1 #AndroidDevJourney 1 #androiddevsummit 5 #GoogleIO 19 #WeArePlay 3 12l 1 5 star apps 1 Ads 1 advertising 1 AGDE 1 AGDK 2 AGI 1 AI 3 AI Announcements beginner Explore Generative AI 1 AI Announcements beginner Explore Generative AI、 1 Android 106 Android 10 1 Android 11 1 Android 12 Beta 5 1 Android 12L 1 Android 13 3 Android 14 7 Android 14 Beta 4 1 Android 14 ベータ版
#11WeeksOfAndroid 18 #Android12 1 #AndroidDevJourney 1 #androiddevsummit 5 #GoogleIO 19 #WeArePlay 3 12l 1 5 star apps 1 Ads 1 advertising 1 AGDE 1 AGDK 2 AGI 1 AI 3 AI Announcements beginner Explore Generative AI 1 AI Announcements beginner Explore Generative AI、 1 Android 106 Android 10 1 Android 11 1 Android 12 Beta 5 1 Android 12L 1 Android 13 3 Android 14 7 Android 14 Beta 4 1 Android 14 ベータ版
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く