牧野遥斗への質問をまとめてみました。
条件が厳しい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の理念として掲げられており、私自身もその考えに深く共感しています。プログラミングを教える際には、生徒たちに、まずは家族や友人など身近な人々からでも、世界に影響を与えることができるんだという意識を持たせるよう心がけました。

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

株式会社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に出展していました!!
概要 システム工学研究会のプロジェクトの一つである、シス研編集部の活動として同人誌を制作して、同人誌即売会で本の配布の方を行なっていました。
技書博にて 技書博では、基本的には本を売り上げるというより著者同士の絡みがとても強いイメージがあります。 色々なサークルの人とお話をゆっくり行なったり、その後の懇親会などではすごく色々な人と話したりして盛り上がりました。 また、色々な人がシステム工学研究会のサークルに遊びに来てもらいすごく色々なご意見や感想を聞けました!!!
技術書典にて 技術書典では、本当に色々な人が来てもらい、多種多様なご意見ご感想をいろいろ聞くことができました!! 鹿さんの本もとうとう印刷もできて実際の本として売ることができてとてもいい思い出となりました。
最終売上 最終的な売上としては、サークル全体で約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
環境について 今回の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: データの永続化