Articles

DroidKaigi2025に遊びにいきました

DroidKaigi2025に遊びにいきました

画像などが全くないのですが、いつか貼ります。 DroidKaigi 2025 参加レポート DroidKaigi 2025は、2025年9月10日(水)から12日(金)までの3日間、ベルサール渋谷ガーデンにて開催されました。今回も最先端のAndroid技術と、日々の開発に役立つ実践的な知見を深く学ぶことができました。 登壇内容の感想と要点 いくつかのセッションに参加し、技術的な深掘りや新たな視点を得ることができました。 その中でも、特に印象に残ったセッションをいくつか紹介させてもらいます。 1. AndroidとKotlin Multiplatformで産業グレードのRFIDシステムを構築する (9/11) このセッションは9月11日の11:20から12:00にJellyfishトラックで、Jasveen Sandral氏によって行われました 。このセッションでは、AndroidとKMPを用いて産業グレードのRFIDシステムを構築する技術が紹介されました 。 通信技術の選択: 通常のUSBやワイヤレス通信に加え、Webシステムを利用した通信方法が取り上げられていました 。特に興味深かったのは、シリアル通信をAndroidからではなく、Web技術(Web Serial) から利用している点です 。 Web技術活用の狙い: Webからシリアル通信を行うことで、クロスプラットフォームでの対応が可能になったり、アプリのインストールが不要になったりといったメリットが考えられます 。これはKMPから呼び出すための技術として利用されているとの理解が得られました 。 技術ブリッジ: 具体的な流れは「RFID → Webシリアル → JS → Android App → KMP」というものであり 、WebViewからJSの内容を繋げるブリッジが作られたそうです 。 KMPの可能性: RFIDパーサーなどのロジックは、シリアル通信さえできてしまえば、あとは共有ロジック(KMP)でできてしまうのは嬉しい話だと感じました 。KMPを雰囲気でしか触ってこなかったため、改めてしっかり触ってみたいという意欲が湧きました 。 Web技術の逆輸入: このWeb技術をブリッジするアプローチは、5G、AI/ML、AR/VRなど、色々なもののWeb技術をモバイルアプリに「逆輸入」できる可能性を感じさせます 。ただし、WebSerialはiOSには対応していないという制約も確認できました 。 2. UIだけじゃないComposeの可能性 ━ 宣言的に奏でるメロディ (9/11) このセッションは9月11日の12:20から13:00にLadybugトラックで、usuiat氏によって行われました 。Jetpack ComposeのRuntimeに焦点を当てた、非常に興味深いセッションでした 。 Composeの構造定義: コンポーザブル関数はUIの表示を直接作っているわけではなく、構造を定義しているという点を改めて確認しました 。表示は「ツリー構造にする→レイアウトを作る→表示する」というフェーズを経ます 。 コンポーズランタイム: 私はRuntimeについてあまり理解していませんでしたが [7, 21]、このセッションを通じて、Runtimeを用いると動作まで宣言的に書くことができるという可能性を知りました 。 動作の管理: ノードを使って動作を管理できるため、コードがより分かりやすくなりそうだと感じました 。動作までComposeで管理をするという発想は非常に面白く 、最初の実装は大変そうですが、そこさえ乗り越えればすごく綺麗に実装ができそうだと感じました 。 3.

牧野遥斗への質問をまとめてみました。

条件が厳しいor難しい課題が出た場合、どうやって解決していくか? GoogleAIチームの15分のルールというものがあり、それに準拠した考えをしていきたいと考えています。 具体的には、まずは自分で解決をできるように色々調べていきます。 QiitaやZenn、本やStackOverflow、公式リファレンスなどを用いて自分で考えていきたいです。 ですが、やはりプログラミングをやっていると調べてもどうしても解決ができないことがあると思います。 そういう時は、15分を目処に周りの上司や同僚に質問を行なって話し合いを行っていきたいと思っています。 最近の経験やプログラミングに興味を持ったきっかけは? プログラミングに出会ったきっかけは、私はマインクラフトだと思っています。 マインクラフトでMODと言われる、通常のゲームに対して有識者が新しい機能を追加するコンテンツがあるのですが、中学生の自分は、その様々な機能を追加していき、自分の思い描いた理想の世界を作れるということをしり感動をし、ぜひやってみたいと思いました。 しかし、プログラミング自体が初めてで、また、英語さえも読めなかった私は環境構築で躓き、最初は挫折をしてしまいました。 ですが、高校に入り、プログラミング体験ができる4日間のキャンプに参加し、Androidのプログラミングを行いました。そこで、ようやく環境構築もでき、最初やりたかったものとはかなり変わってしまいましたが、自分の思い描いた理想をパソコンを通して作り上げることができ感動をして、今もプログラミングを続けています。 今は、周りの様々な人を助けることができるアプリやサービスを作り上げていきたいと思っています。 普段コードを書くときに気を付けていることは? 最近プログラミングをする上で気をつけていることは、周りの人が書いているプログラムの考え方や、方針を汲み取って開発することだと思っています。 複数人で開発するのに、クラスの分け方、ディレクトリの分け方、変数の名前の付け方など、色々なところで違いが出てくると思います。 そこを自分一人の考えで自分が好きだからという理由だけで、推し進めてしまうと、周りの人との考えがぶつかってしまい、方針が定まらないコードを作成してしまうと思います。 ですので、しっかりと開発者がどのようにコードを書いていきたいのかを考え実装をしていきたいと思っています。 今後広げていきたい知識や能力の方向性は? 今後は、技術面で言えば、バックエンドの知識を、技術者で言えば、発信力を鍛えてきたいと思っています。 私は今までモバイルに関するプログラミングを行ってきました。Androidから始まり、iOS,Fltterなど様々なものに触れてきました、大学では、Webなどを開発してきました。大学などでチーム開発を行うたびに自分はバックのサーバーとの通信の仕方をあまり理解していないことに気づき、ぜひバックエンドの知識もつけ、より強いエンジニアになりたいと考えています。 発信力でいうと、QiitaやZennに技術記事を書いたり、何か作品を作ったら、どの部分に苦労したかなどのブログを書いていきたいと思っています。 技術記事に関しては、自分の学びをアウトプットする機会になり、また文字に書き起こすため自分自身も整理され本当に素晴らしいタイミングだと思っています。ですが、今年は何か学んだとしても、QiitaやZennに記事に書くことがめんどくさいと思ってしまい後回しにしてしまいました、ですので、しっかりと書いていき、技術としても周りの人に残しておけるそんなエンジニアになりたいと思っています。

私がモバイルを開発する理由

私はこれまで、モバイルアプリ開発を通じて世界に変化をもたらしてきました。 具体的には、スマートフォンのセンサーを活用して、服を共有し、すれ違いざまに気軽に評価できるアプリ「Xclothes」を開発したほか、電車の乗り過ごしを防止するアプリ「TrainAlert」も制作しました。 「Xclothes」では、HackU Online 2022で最優秀賞を受賞し、「TrainAlert」は累計100ダウンロードを超える成果を達成しました。 これらのアプリを開発した背景には、私自身の悩みや不便さを起点に、同じような課題を抱える多くの人のために解決策を提供したいという思いがありました。痛みや不便さをどうすれば取り除けるかを考え、具体的な形に落とし込み、アプリとして解決策を実現してきました。 特に、モバイル開発に注力してきた理由として、Web開発よりもユーザーに近い体験を提供できる点が挙げられます。スマートフォンという最も身近なデバイスを活用し、センサーでユーザーの行動を認識し、それに基づいてフィードバックを返すことで、大きな行動変容を促せる可能性があると考えています。 今後は、より良いサービスを提供するために、技術力をさらに磨くとともに、多くの人にアプリを使ってもらい、フィードバックを積極的に取り入れながらアップデートを重ねていきたいと考えています。

Life is Tech株式会社さんでメンター業務を行っていました

私は、中高生にプログラミング技術を教える企業でメンターとして、主にSchool事業とキャンプ事業に携わり、プログラミングの指導や生徒のサポートを行っていました。 学んだこと この経験を通じて、プログラミング技術の指導だけでなく、生徒を効果的にファシリテートするスキルも身につけました。生徒がどのようにすれば効率的に学び、ITを活用したものづくりに対して興味を持ち、楽しさを感じてもらえるかを常に考えていました。 プログラミングの指導においては、生徒の理解度を的確に把握し、難しい概念を噛み砕いて伝えることを重視しました。理解が早い生徒には追加の資料を提供し、さらに発展的な学習やスピード感のある開発に繋げました。 ファシリテートスキルとしては、生徒との視線を合わせたコミュニケーションや、グループ内での良好な関係を築く場作りを意識しました。メンターと生徒の信頼関係を深め、安心して学べる環境づくりを大切にしてきました。 大切にしていたこと 「Why don’t you change the world?」という言葉がLife is Techの理念として掲げられており、私自身もその考えに深く共感しています。プログラミングを教える際には、生徒たちに、まずは家族や友人など身近な人々からでも、世界に影響を与えることができるんだという意識を持たせるよう心がけました。
DroidKaigi2024にて位置情報サービス(Geofence)の使い方について登壇をしました。

DroidKaigi2024にて位置情報サービス(Geofence)の使い方について登壇をしました。

位置情報技術に関する内容で発表を行いました。 内容としては、自作のGeofenceの使い方とGoogleMobileServiceのGeofenceの違いを述べたり、電池寿命を伸ばすための工夫などをスライド150ページほどでまとめました。 予想以上に多くの方にご関心をいただき、立ち見が出るほどの盛況となり、大変驚きました。一方で、発表時間の配分に課題があり、後半は内容を急いで説明せざるを得なくなる場面がありました。この経験から、次回以降は資料を早期に完成させ、十分な発表練習を行うことの重要性を改めて認識しました。 それでも、多くの方から肯定的なフィードバックをいただき、また実験結果としてバッテリー寿命の改善を明確に示すことができた点は、大きな成果だと感じます。 公式ホームページ 電池寿命を考えた位置情報の監視方法を考える(Geofence) | DroidKaigi 2024 登壇した時の経験談
株式会社CARTA HOLDINGSの2024年度インターン「treasure」に3週間参加しました。

株式会社CARTA HOLDINGSの2024年度インターン「treasure」に3週間参加しました。

このインターンでは、CARTA HOLDINGSが大切にしている超効率的なアジャイル開発の基本や、チーム開発におけるコミュニケーションの取り方などを学びました。プログラムの流れとしては、1週目にTypeScriptの基礎や、バックエンドフレームワークのHono、フロントエンドフレームワークのViteを学習。2週目には、チームに分かれてアイデア出しと企画書作成を行い、3週目には、その企画書をもとに開発を進め、最終日に発表を行いました。 このインターンで最も驚かされたのは、常に本番環境を意識した話し合いや、無駄を一切許さない開発効率でした。本番環境を確認しながら進めるという点では、自分のローカル環境で問題なく動作していた機能も、複数人のコードがマージされると予期せぬ不具合が発生しがちな経験が多くありました。しかし、今回のインターンでは、細かい粒度でPRを行い、常に本番環境を意識して確認を行うことで、UI/UXの微細なズレや機能面での不統一を早期に発見し、これが現場レベルの開発であることを実感しながら進めることができました。 次に、1分1秒も無駄にしない開発効率についてです。開発の手が少し空いた際にメンターから「周りの人からタスクをもらえることを考えたか?」と問われたことで、周囲の状況を常に意識し、次に自分ができることを探す姿勢が今後の成長に重要だと感じました。 この3週間を通じて全てを吸収できたわけではありませんが、日々のチーム開発において本番環境をしっかり意識する心構えや、チームの状況を把握しながら自ら積極的に貢献できるように努めていきたいと思っています。

株式会社Relicさんでインターンを行っていました

新規事業の立ち上げを戦略/企画立案から開発、グロースまで一気通貫で行う事業を行う会社で、モバイルエンジニアとして、開発を行ってきた。 主に、現在はサービスが終了してしまったLoupeというアプリを開発しており、バグの修正から、新機能の開発などを担当した。 公式サイトは無くなってしまったため、口コミサイトでのLoupeの情報 https://prtimes.jp/main/html/rd/p/000000130.000016318.html 学んだこととしては、技術面もたくさん学ばしてもらったが、一番印象に残ったことは開発を行う時のコミュニケーションだと考える。 私が、新機能の開発をしている時に動作が重くなってしまうコードを書いてしまい、そのままPRが通ってしまい、テスト配信をする時に動作が重くなったことが判明して、一時配信が遅延しかけてしまいましたが、自分が問題の原因を作ってしまったことを気づき、PMに相談して、ことなきを得たことがありました。 その時に、PRをするときは、しっかりと問題点を書き出したり、相談するときはDraftを用いるなど、ちょっとした気配りが、大事だと感じました。 また、怒られることを怖がって、相談しないで、闇に葬ろうとすると、原因究明に時間がかかり、工数が無駄にかかってしまうため、しっかりと相談をすることが大事だと感じた。 他にも、Androidアプリで、新規事業をするときの技術調査を行ったりした。 現在は、Flutterを用いたテンプレートアプリを開発し、今後の新規事業に備え、開発を行っている。
技術書展16と技書博10に出展していました!!

技術書展16と技書博10に出展していました!!

概要 システム工学研究会のプロジェクトの一つである、シス研編集部の活動として同人誌を制作して、同人誌即売会で本の配布の方を行なっていました。 技書博にて 技書博では、基本的には本を売り上げるというより著者同士の絡みがとても強いイメージがあります。 色々なサークルの人とお話をゆっくり行なったり、その後の懇親会などではすごく色々な人と話したりして盛り上がりました。 また、色々な人がシステム工学研究会のサークルに遊びに来てもらいすごく色々なご意見や感想を聞けました!!! 技術書典にて 技術書典では、本当に色々な人が来てもらい、多種多様なご意見ご感想をいろいろ聞くことができました!! 鹿さんの本もとうとう印刷もできて実際の本として売ることができてとてもいい思い出となりました。 最終売上 最終的な売上としては、サークル全体で約36万円ほど売上ました!! ですが、本の印刷代などを考えるとかなりトントンの利益になってしまうのですが、学生サークルの身で利益がトントンとなるほど皆様の手にとっていただき本当にありがたい限りです。 ありがとうございました。 イベントを終えて システム工学研究会は、本の作成に関しては、最初は会誌として本を作成して、一度はコロナの時代もあり無くなってしまった文化だったのですが、技術書典や技書博などのイベントとメンバーのやる気に支えられてなんとか一年間活動を行うことができました!! かなりお金を使う活動なため続けることは今後は難しくなってしまうかもしれませんが、自分がいる間は続くといいなぁと感じています。 新刊一覧 Proxmoxで作る超便利な自宅サーバーレシピ 購入リンク 皆さんはサーバーを作った経験があるでしょうか。普段サーバー系の仕事をされている方でなければ、作ったとしてもNASやマイクラサーバーでしょう。今ではクラウド技術が発展し、サーバーレスと言われるようになりました。そんな中で当サークルでは今年、サーバーの全削除、再構築を行いました。それが楽しくて家でもサーバーを構築したところ、非常に便利なサーバーが完成しました。特に面白いのがProxmoxというOSで、仮想マシンの作成もバックアップも簡単に取れる優れものです。 このProxmoxを使って物理マシンの遠隔起動、家電コントロール、NAS、VPN、Mac・Ubuntu・Windowsの仮想マシンの構築。さらには、ポート開放なしでWebサイトの公開やVPNを実現しました。一台の物理マシンですべてのOSを動かし、遠隔で操作するという驚異的なものです。 今回は、Proxmoxをベースにした超便利な自宅仮想サーバーの一部を紹介します。 ICMPとARPを使って端末数を取得する本 with Golang 購入リンク ネットワークの通信状態を確認するために使われるICMP、ネットワーク上のMACアドレスを取得するために使われるARP。2つのプロトコルについてと違いを解説しつつ、Linuxコマンドを使わずにGolangからネットワークに接続しているデバイス数を取得する手法を紹介した本です のんでざいなーのプログラマーによる、デザインのにげかた。 これは本と言い張る版 購入リンク この本?はサークルを運営していて、デザインをどうしたらまともになるのかを話し合うことがあり、その時に作った本?になります。 デザイン自体を作成するときは、天性の才能のように感じますが、最低限それっぽく見せるだけでしたら、才能ではなく知識でカバーをすることができます。 例えば、余白を取るだったり、しっかり整列をさせて作ろうなどです。 そう言った、初めてデザインをする人がミスしやすいところや、一番気をつけて欲しいところ自分なりにまとめた本になります。 Google検索及びエラーの解決方法 生成AIも活用使用! これは本と言い張る版 購入リンク この本?はサークルを運営していて、初めてプログラミングを勉強し始めた人たちに向けて作成した、Google検索のやり方出会ったり、エラーの検索の仕方をまとめた本!!になります。 今までエラーの検索の仕方などをなかなかまとめられている記事が少なく、簡単にまとまっているものが少ないと思ったため、作成をしました。 賞について 第十回技書博にて(技術同人誌博覧会)[優秀賞]をいただきました!! 佐藤くんが作成したProxmoxで作る超便利な自宅サーバーレシピにおいて、評価をされて賞を受賞しました!! 佐藤くんもすごく賞をもらった後すごく喜んでいました。 投稿者 k22120 牧野遥斗
Androidを勉強してみようの記事 in 2024

Androidを勉強してみようの記事 in 2024

環境について 今回のAndroidStudioのバージョンはAndroid Studio Jellyfish | 2023.3.1でやっていきます。 最近のバージョンだとGeminiを用いてAIと対話しながら開発ができるらしいです。 使ったことはないのでどれくらい精度がいいかはわかりませんが、GitHubCopilotくんを使うお金がない方などは使ってみてもいいかもしれないです。 とりあえず、最新を使いましょう。 インストールリンク 最初の導入 モバイル開発とはどんな感じかをお話しします。 スライドリンク おすすめの本 おすすめの本 初めてのAndroidプログラミング AndroidDevelopersは便利だよ ちょっと前までは英語の記事だったり、少しわかりずらいなどがありましたが、今はすごくわかりやすくいい記事がたくさんあります。 ぜひ、ここの公式サイトを色々みてみると面白いかもしれないです。 https://developer.android.com/?hl=ja ライフサイクルは大事(よくわからなかったら飛ばしてもOK) ただのJavaのプログラムとAndroidのアプリの違いは? Androidアプリには、端末サイドでアプリを起動した時、アプリを立ち上げた後にホームに戻った時、アプリをタスキルした時とかタイミングがある。 ↑アクティビティのライフサイクル。 アプリは起動すると、作られて、始まって、、、みたいなの。 具体的な内容 以下の記事をみなさんに進めてもらいます。 その中でわからないところがあったら、適宜教えにいくスタイルにします。 残り1時間ぐらいになったら、今できている範囲で何か面白いひと工夫をWebなどで調べながら実装してもらって、少し発表会をして終わる感じにします。 AndroidでHelloWorld とりあえず、アプリを作ってみて、出力される文字を変えてみるだけ。 動作確認だけです。 JetpackComposeで画面の表示の基礎 わかるところは飛ばして進めます。 一部いらないところはスキップしていきます。 ユニット 1: 初めての Android アプリ ユニット 2: アプリ UI を作成する ユニット 3: リストの表示とマテリアル デザインの使用 Androidを使いこなす ユニット 5: インターネットに接続する ユニット 6: データの永続化

DroidKaigi2025に遊びにいきました

Planted September 19, 2025

DroidKaigi2025に遊びにいきました

画像などが全くないのですが、いつか貼ります。

DroidKaigi 2025 参加レポート

DroidKaigi 2025は、2025年9月10日(水)から12日(金)までの3日間、ベルサール渋谷ガーデンにて開催されました。今回も最先端のAndroid技術と、日々の開発に役立つ実践的な知見を深く学ぶことができました。

登壇内容の感想と要点

いくつかのセッションに参加し、技術的な深掘りや新たな視点を得ることができました。 その中でも、特に印象に残ったセッションをいくつか紹介させてもらいます。

1. AndroidとKotlin Multiplatformで産業グレードのRFIDシステムを構築する (9/11)

このセッションは9月11日の11:20から12:00にJellyfishトラックで、Jasveen Sandral氏によって行われました 。このセッションでは、AndroidとKMPを用いて産業グレードのRFIDシステムを構築する技術が紹介されました 。

  • 通信技術の選択: 通常のUSBやワイヤレス通信に加え、Webシステムを利用した通信方法が取り上げられていました 。特に興味深かったのは、シリアル通信をAndroidからではなく、Web技術(Web Serial) から利用している点です 。
  • Web技術活用の狙い: Webからシリアル通信を行うことで、クロスプラットフォームでの対応が可能になったり、アプリのインストールが不要になったりといったメリットが考えられます 。これはKMPから呼び出すための技術として利用されているとの理解が得られました 。
  • 技術ブリッジ: 具体的な流れは「RFID → Webシリアル → JS → Android App → KMP」というものであり 、WebViewからJSの内容を繋げるブリッジが作られたそうです 。
  • KMPの可能性: RFIDパーサーなどのロジックは、シリアル通信さえできてしまえば、あとは共有ロジック(KMP)でできてしまうのは嬉しい話だと感じました 。KMPを雰囲気でしか触ってこなかったため、改めてしっかり触ってみたいという意欲が湧きました 。
  • Web技術の逆輸入: このWeb技術をブリッジするアプローチは、5G、AI/ML、AR/VRなど、色々なもののWeb技術をモバイルアプリに「逆輸入」できる可能性を感じさせます 。ただし、WebSerialはiOSには対応していないという制約も確認できました 。

2. UIだけじゃないComposeの可能性 ━ 宣言的に奏でるメロディ (9/11)

このセッションは9月11日の12:20から13:00にLadybugトラックで、usuiat氏によって行われました 。Jetpack ComposeのRuntimeに焦点を当てた、非常に興味深いセッションでした 。

  • Composeの構造定義: コンポーザブル関数はUIの表示を直接作っているわけではなく、構造を定義しているという点を改めて確認しました 。表示は「ツリー構造にする→レイアウトを作る→表示する」というフェーズを経ます 。
  • コンポーズランタイム: 私はRuntimeについてあまり理解していませんでしたが [7, 21]、このセッションを通じて、Runtimeを用いると動作まで宣言的に書くことができるという可能性を知りました 。
  • 動作の管理: ノードを使って動作を管理できるため、コードがより分かりやすくなりそうだと感じました 。動作までComposeで管理をするという発想は非常に面白く 、最初の実装は大変そうですが、そこさえ乗り越えればすごく綺麗に実装ができそうだと感じました 。

3. ComposeではないコードをCompose化する (9/12)

このセッションは9月12日の11:20から12:00にLadybugトラックで、Kikoso氏によって行われました 。既存のAndroid ViewをJetpack Composeと統合する際の実践的な課題を扱ったセッションです 。

  • ライフサイクルの管理: MapViewには複雑なライフサイクルがあり、色々な通知やリスナーがそのままでは呼び出されない問題があります 。
  • DisposableEffectの活用: ライフサイクルを監視するために**DisposableEffect**を用いるというテクニックを初めて知りました 。
  • 難しさと不安: ViewとComposeの接続部分のライフサイクル操作は、毎回変なやり方をしていないのか不安になる部分であり 、おかしいやり方をすると簡単に落ちるし、ブラックボックスになりがちです 。
  • 本質的な課題: 「メモリーの部分やクラッシュの問題は解決をできたとしても、そもそもそこは最初の始まり」という指摘は痛いところを突かれました 。究極的には、ライフサイクルやバンドルを意識しなくてもできるようにならないといけない 。
  • 学習のヒント: この細かいAndroid Viewとの接続部分を勉強したかったら、Google Mapをリバースエンジニアリングするのが一番よさそうだというアドバイスがありました 。ViewとComposeは違うものと改めて思わないといけない 。

4. 「どこから読む?」コードとカルチャーに最速で馴染むための実践ガイド〜新メンバーを活躍に導くオンボーディング戦略〜 (9/12)

このセッションは9月12日の12:20から13:00にKoalaトラックで、richako (risako070310)氏によって行われました 。新メンバーがプロジェクトに馴染むための戦略についての実用的なセッションでした 。

  • 新メンバーの課題: プロジェクトの概要がわからない、ドメイン知識が足らない、ファイルが多いといった課題が挙げられました 。
  • コードの読み解き方: データ、UI、機能に分解して読むこと、特にUIから読んでいくのは非常に納得感がありました 。アプリのコアのデータクラスを読むことで何が動いているのかがわかり 、FindUsagesで使われ方を追跡したり、Layout InspectorFind in Filesを使うといった具体的な手法が紹介されました 。
  • ドキュメントの重要性: 遭難を避けるために地図(Readme.mdやアーキテクチャー図)を作成する重要性が強調されました 。アーキテクチャ図は本当に大事だと自分も思うが、作られていないプロジェクトが多い気がするため、時間がある最初のうちに作っておきたいです 。
  • 文化・思想の共有: 日々のレビューで思想を伝えること、コードレビューは指摘ではなく対話として捉えることの重要性が示されました 。設計思想の相談やペアプログラミングを用いて、動機的に共有することも有効です 。
  • オンボーディングのメンテナー: オンボーディング資料やドキュメントの古さを修正できるのは新規メンバーだけという考え方は非常に新鮮でした 。新メンバー自身がメンテナーになる文化を作っていくことの重要性を感じました 。

5. 衛星元年 スマホ圏外からLEO衛星🛰で安否情報を届けるAndroid DTC (Direct to Cell)完全攻略 (9/12)

このセッションは9月12日の14:20から15:00にJellyfishトラックで、muo氏によって行われました 。衛星通信という特殊な環境下でのAndroidアプリ開発の課題を扱っていました 。

  • 通信の仕組みと特性: スマホ → 衛星 → 地上の通信拠点という3点で通信をするという仕組みを理解しました 。Starlinkなどの衛星通信は、通信ができる時とできない時がかなりの頻度であり、非常に不安定です 。
  • OSの制御: 衛星が見えていてもすぐに通信をしてはいけないという制御がAndroid OS側で必要になることがわかりました 。なぜなら、衛星基地局はかなり遅く、不安定であり、ユーザーからは「繋がっているのに使えない」という体験になりがちだからです 。そのため、なるべく衛星をつなげないようにする制御が行われます 。
  • オフラインファーストの徹底: 衛星モードだと使える機能がかなり減るため 、安定通信を暗黙的に前提とする設計は使えないことが強調されました 。広告が繋がらないと死ぬ、Googleログインができていないと詰むといった事態を避けるためにも、データの送受信を通常のアプリサイクルと切り離し、オフラインでも使える考え方が重要だと再認識しました 。
  • 開発の課題: 圏外でないと検証ができないが、圏外では開発ができないというジレンマが語られました 。Termuxを使って開発やデバッグができる可能性についても触れられていました 。

DroidKaigiのブースでの感想

カンファレンス期間中、スポンサーブースでも興味深い情報に触れることができました [15, 26]。

ホンダさんのブースで、Android Auto用のエミュレーターを無料で誰でもダウンロードできることを初めて知りました。 また、タクシーGoさんのブースでは 、シェアライドの裏側にあるマッチングの難しさや、乗れる場所を決めたときのやり方について直接話を聞く機会がありました。 他にも、ブースではないのですが、コーヒーの整理券として、サーマルプリンターが用いられており、このシステムの開発者さんとお話ができ、サーマルプリンターを用いた経緯などをお話しさせてもらいました! 本当に、色々な情報を共有できて本当に楽しかったです。

また、ブース以外にも、DroidKaigi を楽しめる色々な工夫がされていました! ネイル体験ができたり、お菓子や飲み物を用いて雑談をするのに楽しませてもらったり、美味しいご飯などが本当にたくさん出てきてとても良かったです!


今後の展望

今回、Slackで書いたメモを元にNotebookLMを用いて簡単に記事を書いてみました。 登壇内容と感想と要点以外は、全て手書きの内容になります。 自分の理解度が足らず作者が思っているものとは少し違う解釈をしてしまっているところもあるかもしれませんが、その時は連絡を入れていただけるとありがたいです。

今回も本当に技術力の高いセッションをお聞きして、新たな刺激を受けれたり、Androidエンジニアのコミュニティーの一員として、様々な交流を深めることができました! こういった経験ができたことに感謝をして、現場での開発に活かせれたらと思っています!

また来年もよろしくお願いします。