エムスリーテックブログ

エムスリーテックブログ

エムスリー(m3)のエンジニア・開発メンバーによる技術ブログです

Android CLI と ADB を使って Android 実機 / エミュレータを操ってみる

【マルチデバイスチーム ブログリレー5日目】

マルチデバイスチームの小林(@bakobox)です。

2026年4月に Android CLI が公開されました。プロジェクトの作成から実機デバイス / エミュレータの操作までを行える CLI で、AI エージェントによるアプリ開発の操作を容易にすることを目的に開発されています。

この Android CLI と、昔からある ADB コマンドの使い方を AI エージェントに教えるだけで、公式ツールのみで Android 実機 / エミュレータを操作できます。

本記事では、Android CLI と ADB を使って Android 実機 / エミュレータを操作するエージェントスキルを、実際のコマンドとあわせて紹介します。

Claude Code で Android アプリの動作確認をしている様子

続きを読む

アプリ開発チームに転職して感じたこと

【マルチデバイスチーム ブログリレー4日目】

こんにちは、マルチデバイスチームでモバイルアプリエンジニアをやっている八箇です。

2025年9月にエムスリーに転職して9ヶ月が経ちました。開発環境や文化の違いにもようやく慣れてきたところです。 昨年(2025年)はモバイルアプリの開発業務以外にも、iOSDC, DroidKaigi, FlutterKaigi, およびKotlin Festの4つのカンファレンスで弊社ブースのお手伝いをさせていただきました。

iOSDCのブースでの写真

入社直後だったためサポートを受けながらではありましたが、入社前の客観的な視点と、入社後実際に目にしたチームの様子、その両方を交えて社外の方にエムスリーのアプリ開発についてお話しできたのは、非常に良い経験になりました。 その際に、社外の方々とお話しする中で、多くの方がエムスリーに対して入社前の私と同じイメージを持っていると感じました。

本記事では、私が入社前に抱いていた不安と実際、そして入社してから気がついたエムスリーで働く上での魅力についてまとめています。 エムスリーに興味を持っている方の参考になれば幸いです。

続きを読む

ファイルサイズの大きなAndroidアプリを配信する技術

【マルチデバイスチーム ブログリレー3日目】

エンジニアリンググループ マルチデバイスチーム(iOS/Androidアプリの開発を担当)の渡辺です。

マルチデバイスチームで開発している「臨床ポケット」アプリは、医師が臨床現場で行う判断をエビデンスに基づいて支援するアプリです。 実際の医療現場ではスマホの通信状況が芳しくないことも多く、インターネットに接続できる前提だといざというときに利用ができない場合があります。 臨床ポケットではあらかじめ必要なデータをアプリにバンドルしておくことで、オフラインでの利用を可能にしました。

iOSアプリの開発時は何も問題なくアプリをリリースできましたが、AndroidアプリはGoogle Play ConsoleでApp Bundleのアップロード時にエラーが出ました。

この記事では、ファイルサイズの大きなAndroidアプリを配信するために実施した対応を紹介します。

続きを読む

【2026年最新】JetBrains Junie vs Claude Code!AIエージェントの使い分け実践ガイド

【マルチデバイスチーム ブログリレー2日目】 エンジニアリンググループ マルチデバイスチームの田根です。

日本最南端の波照間島のニシ浜にはウミガメがいっぱい

私は主に IntelliJ IDEA を使って開発しているので、AIエージェントは JetBrains Junie をメインで使っています。 Claude Code も IntelliJ IDEA のプラグイン Claude Code [Beta] - IntelliJ IDEs Plugin | Marketplace があり、IntelliJ IDEA 上で動かせます。 今回は、この両者を実際の開発プロジェクトでガッツリ使い倒して分かった「リアルな違い」を、率直に比較レビューします。 Junieの自律思考とClaude Codeの馬力、どちらがどんな場面で活きるのか? 使い分けのヒントをお届けします。

※本記事では、Junieは最も安価な Gemini 3 Flash Previewモデル、Claude Codeは最新モデルを使用して比較しています。

続きを読む

エムスリーテクノロジーズのiOSアプリ大規模リファクタリング事例

【マルチデバイスチーム ブログリレー1日目】

エンジニアリンググループ・マルチデバイスチーム(以下「マルデバ」)の星野です。

私は普段マルチデバイスチームに所属し iOS/Android アプリの開発をしていますが、同時にエムスリーテクノロジーズにも出向という形で在籍し、グループ会社においてもモバイルアプリの開発・支援をしています。

今回は、現在私が進めているグループ会社のモバイルアプリのリファクタリング事例をご紹介し、エムスリーテクノロジーズにおける業務の様子をお伝えできればと思います。

リファクタリングイメージ図

続きを読む

distrolessコンテナイメージ使おうとして依存が足りないときはどうすればいいですか?あ、OCamlなんですけど。

この記事は基盤開発チームブログリレー4日目の記事です。

こんにちは、エンジニアリンググループ基盤チームリーダー兼General Managerの横本(@yokomotod)です。

ありのまま今起こった事を話すぜ…おれは基盤チームブログリレーを走ると思っていたらいつのまにかOCamlブログリレーだった… 何を言ってるのかわからねーと思うがおれも何をされたのかわからなかった…頭がモナドになりそうだった…

www.m3tech.blog

www.m3tech.blog

www.m3tech.blog

3日間、Web・CLI・機械学習と OCaml で攻め続ける先人達により、OCaml デビューする以外の道は閉ざされました。「じゃーまずはデプロイの仕方から学ぶかー。distroless で動くのかな?」ということで本記事が生まれました。

以前 distrolessコンテナイメージの中を覗いて「なんか軽くてセキュアらしい」より理解を深める という記事を書きました。公式には提供されていない OCaml の場合、どうするんでしょうか。

これはつまり、distroless × Python などで「distroless で依存不足で困った」という状況と同じようなものです。OCamlには馴染みのない方も「たまたまOCamlが題材なだけ」と思って安心してお読みください。*1

*1:我ながらホントかよと思いながらやりましたが、コンパイル型でリンク方法なども制御でき悪くない題材だった気もしてきています

続きを読む

OCamlでLightGBMを動かして機械学習してみた

長女と2人ポケパーク、世代を超えて愛されるものを作れるってすごいよね

はじめに

こんにちは、エムスリー株式会社 業務執行役員 VPoE 兼 基盤チーム チームリーダーの河合(@vaaaaanquish)です。

この記事は「基盤開発チーム ブログリレー3日目」の記事です。

先日、基盤チームで「うちもブログリレーやろう!」と盛り上がりまして、「いいね!私も書こうかな!」と気軽に思っていたのですが、何故か1日目2日目の記事がOCamlの記事になっており「それをやられたらビッグウェーブに乗るしかないが…?」ということで私もOCamlで機械学習をやりました。

つまり本記事は、気合いと根性のやってみた記事になります。

  • はじめに
  • LightGBMとは
  • ということで出来ました
  • 技術的に面白いなと思ったところ
    • ctypes-foreign
    • float32/float64問題
    • メモリ解放問題
    • char**のマーシャリング
  • 動かしてみる
  • おわりに
    • We are hiring !!
      • エンジニア採用ページはこちら
      • カジュアル面談もお気軽にどうぞ
      • インターンも常時募集しています
続きを読む