エムティーアイ エンジニアリングブログ
https://tech.mti.co.jp/
エムティーアイ エンジニアリングブログ
フィード

iOSの非同期処理をメインスレッドとバックグラウンドスレッドから理解する
エムティーアイ エンジニアリングブログ
はじめに こんにちは!アプリ開発支援部の小林です! iOSのアプリを開発していると、多くの場面で非同期処理が登場します。 しかし、「非同期処理とは何か?」と改めて聞かれると、説明するのは難しいのではないでしょうか?(私もです) なんとなく、「時間のかかる処理には async/awaitやTask を使う」ということは知っていても、実際にその仕組みを理解するのは容易ではありません。 そこで、本記事では、非同期処理がある場合と無い場合を比較しつつ、メインスレッドとバックグラウンドスレッドの観点からiOSの非同期処理についての解説を行います。 そして、非同期処理を「使える」から「理解できる」へステッ…
3日前

エムティーアイ Blog Summer 2025の最終日を迎えて
エムティーアイ エンジニアリングブログ
はじめに こんにちは。アプリ開発支援部の佐藤です。 ※この記事は「エムティーアイ Blog Summer 2025」の 8/29 分の記事です。 私たちは8月1日から31日までの間、「エムティーアイ Blog Summer 2025」と題し、1日1記事を投稿していくリレー形式のブログイベントを開催いたしました。 イベントを終えて 全20日間にわたる投稿が、ついに本日で一区切りとなりました。 新卒からベテランエンジニアまで様々な立場のメンバーが参加し、日々の業務で培った技術や知見が共有されました。 またフロントエンド、インフラ、AI、設計、働き方に関するものまで、非常に幅広いテーマが投稿されてい…
1ヶ月前

オブジェクト変換におけるAutoMapperの使い方
エムティーアイ エンジニアリングブログ
はじめに はじめまして!2025年に新卒入社し、テクノロジー本部に所属している原です。 今回は私がC#でASP.NET Coreを学習している中で知った「AutoMapper」というライブラリについて紹介したいと思います。 ※この記事は「エムティーアイ Blog Summer 2025」の 8/28 分の記事です。 目次 AutoMapperとは 使用例 マッピング設定 ASP.NET Coreでの登録方法 まとめ 感想 1. AutoMapperとは AutoMapper公式ドキュメントによると、AutoMapperは「似た構造を持つオブジェクト間のマッピングを自動化するライブラリ」とされて…
1ヶ月前

フロントエンドにおけるデータアップロード時のアイテム追跡機能(履歴表示)について
エムティーアイ エンジニアリングブログ
スマートコンテンツ事業部の兒玉です。 直近バックエンド&フロントエンドのデータ取り込み部分の改修を担当し、その中で面白い学びがあったので共有したいと思います。 自身が学生の時に知っていると嬉しいなと感じることがあったので少しでも学びの糧になれば幸いです。 ※この記事は「エムティーアイ Blog Summer 2025」の 8/27(水) 分の記事です。 ※本記事の一部内容(コード例、解説文の構成など)はAIを活用して作成しています。 ※本記事のデモアプリケーションは教育向けに作成したもので、業務との関わりは一切ありません。言語/技術スタック全て個人の趣味で構成しています。 この記事の対象者 学…
1ヶ月前

3日間で企画のコアができる「デザインスプリント」とは!?
エムティーアイ エンジニアリングブログ
※この記事は「エムティーアイ Blog Summer 2025」の 8/25 分の記事です。 はじめに みなさん、こんにちは!テクノロジー本部所属の金子 椋です! 4月に新卒として株式会社エムティーアイに入社しました。 今回は、エンジニアとしての研修の一環で行った「デザインスプリント」について紹介したいと思います。 こんな興味はありませんか? デザインスプリントって聞いたことあるけど、やったことがない。もう少し知りたい、少しやってみたい! 短期間で企画や0→1のアイデアを生み出さないといけない。 複数人で話し合って企画を進めるのが苦手。 自分の発想に頼ってアイデアを出すことが苦手。 と思ったこ…
1ヶ月前

【Android】targetSdkVersionを34から35に更新する
エムティーアイ エンジニアリングブログ
はじめに こんにちは。アプリ開発支援部の佐藤です。 この記事は、AndroidアプリのtargetSdkVersionを34から35に更新した際の対応記録です。 SDK更新の際に行った対応や直面した問題の解決策などをまとめています。 これからSDK 35への対応を始める方や、既に作業中で問題に直面しているAndroidエンジニアの方にとって、本記事が参考になれば幸いです。 ※この記事は「エムティーアイ Blog Summer 2025」の8/26 分の記事です。 対応したことの全体像 targetSdkVersionを35に更新する際には、それに合わせて主要なライブラリやツールも互換性のあるバ…
1ヶ月前

ドメインモデル貧血症を改善し、リッチドメインモデルを採用したお話し
エムティーアイ エンジニアリングブログ
はじめに スマートコンテンツ事業部の兒玉です。 昨年から社内で DDD(ドメイン駆動設計) の勉強会が活発になり、ドメインモデルやモデルに振る舞いを持たせることについて学ぶ機会が増えました。 当初は理解が難しかったのですが、実際の業務で新規リソースを立ち上げる中で、「モデルに振る舞いを記述することの利便性」を実感しました。この記事では、その気づきを具体例を交えて共有します。 ※この記事は「エムティーアイ Blog Summer 2025」の 8/22 分の記事です。 ドメインモデル貧血症とは? ドメインモデル貧血症については以下のように語られており、ドメインモデルがgetter/setterし…
1ヶ月前

ストーリーで書くことで見えてくるもの 〜ラフ画面から基本設計へ〜
エムティーアイ エンジニアリングブログ
こんにちは、スマートコンテンツ事業部の天野です。 今日は、私が OKR として進めている「開発リーダー育成」取り組みの中から、 要件定義・基本設計に関する事例を紹介します。 ※この記事は「エムティーアイ Blog Summer 2025」の 8/21 分の記事です。 機能一覧・ラフ画面から基本設計へ 新しいアプリをゼロから作る機会は多くないかもしれませんが、 OKR では 「新規 WEB アプリを作る」 という想定で、ビジネス側から渡された要求定義・ラフ画面を元に、要件定義〜基本設計をどう進めていくかを学んでいます。今回はその中で、基本設計にあたる 「画面定義」「ER図」 へつなげていくプロセ…
1ヶ月前

React Router における共通レイアウトの扱いについて
エムティーアイ エンジニアリングブログ
※この記事は「エムティーアイ Blog Summer 2025」の 8/20 分の記事です。 はじめに こんにちは。スマートコンテンツ事業部の高木です。 今回は、私が最近知って驚いた「React Router における共通レイアウトの扱いについて」についてご紹介します。 共通レイアウトとは? フロントエンド開発では、headerやfooterなど、どの画面でも共通して表示される部分(共通レイアウト)がありますよね。 私はこれまでReactでUIを実装する際、headerやfooterなどの共通レイアウトをApp.jsに直接インポートしていました。 そうするとルーティングの記述とレイアウトの記述…
1ヶ月前

AI駆動の要件定義と「Why」の重要性
エムティーアイ エンジニアリングブログ
はじめに スマートコンテンツ事業部、開発担当の玉置です。 ソフトウェア開発において「Why(なぜそれが必要か)」を理解することの重要性が広く語られてきました。AI駆動の要件定義においても、AIはエスパーではないため、この原則は重要だと考えています。 今回、AI駆動の要件定義において、同一の要求に対してWhyの情報を意図的に省いて設計と計画を進め、その結果を比較することで、あらためてWhyの定義と、AIにコンテキストを伝えることの重要性を確認してみました。 実験概要 同一要求で「Whyなし」「Whyあり」の2パターンの要求文書を作成し、それぞれをもとにAIで以下の成果物を生成しました。 要求文書…
1ヶ月前

GitHub Copilot Coding Agent 体験記
エムティーアイ エンジニアリングブログ
はじめに こんにちは。スマートコンテンツ事業部の中津留です。 最近、OKR活動の一環として「AIを活用したコーディング」に取り組んでいます。 普段はGitHub Copilotにコード補完をしてもらう程度でしか活用していませんが、 今回はせっかくの機会なので、それ以外の機能についても試してみることにしました。 ※この記事は「エムティーアイ Blog Summer 2025」の 8/18 分の記事です。 作るもの 現在模擬プロジェクトとして健康をサポートするアプリを開発しており、私は「健診機関一覧を表示」する機能の実装を担当中です。 アプリ画面は別途AIで実装済みの状態のため、今回はアプリから …
2ヶ月前

【Claude Code小ネタ】インタラクティブなコンソール手順はCLAUDE.mdに書こう
エムティーアイ エンジニアリングブログ
※この記事はClaude Codeに清書させた内容を一部編集したものです。 ※この記事は「エムティーアイ Blog Summer 2025」の 8/15 分の記事です。 この記事の概要 Claude Codeでプロジェクトを扱う際、認証が必要なコマンドやインタラクティブな操作が必要なケースがあります。今回は、.NETプロジェクトでプライベートNuGetリポジトリを使用する場合を例に、CLAUDE.mdに手順を記述することでClaude Codeが適切に動作する方法を紹介します。 前提条件 環境: WSL (Ubuntu) + .NET SDK artifacts-credprovider ツー…
2ヶ月前

新卒でいきなりスクラムマスターを経験して得た学び
エムティーアイ エンジニアリングブログ
※この記事は「エムティーアイ Blog Summer 2025」の 8/14 分の記事です。 はじめに こんにちは!スマートコンテンツ事業部の岩本です。 4月にエムティーアイ新卒エンジニアとして入社しました。 今回は研修の一環で行った新卒でのチーム開発で、スクラムマスターを行った経験について振り返ります。 就活の際に実際に研修では何をするのか?研修で技術力だけではなく実際にチームで開発をするために何を学んだか?気になる人のためにまとめようと思います。 はじめに 研修の概要 スクラムマスターをすることになった経緯 チーム開発の概要 課題と役割設定 スクラムマスターとして実際にやったこと スクラム…
2ヶ月前

エンジニアの視点から見る「言語」の意味
エムティーアイ エンジニアリングブログ
※この記事は「エムティーアイ Blog Summer 2025」の 8/13 分の記事です。 はじめに こんにちは!スマートコンテンツ事業部の藤木です。 エムティーアイに新卒でエンジニアとして入社して、配属直後にこの記事を書いています。 大学院では自然言語処理系の研究室にいたため、言語やAIなどに関心があります。 弊社では3か月間の新卒エンジニアの研修があり、そこではC#・Reactなどを学びながらWebアプリを作成しました。私はその過程で疑問を覚えました。 書きたい処理はなぜ毎回プログラミング言語で表現可能なのか? 「言語」を扱うものであるなら、理系より文系の分野なのでは? 「言語」と呼ぶか…
2ヶ月前

【Git】大文字小文字の異なるファイルが共存する問題の解決方法
エムティーアイ エンジニアリングブログ
※この記事は MTI Blog Summer 2025 の8月12日分の記事です。 はじめに こんにちは、アプリ開発支援部に所属しているエンジニアの涌井です。 今回は、プロジェクトで開発をしていた際に発生したGitの問題について、その事象と解決方法をご紹介いたします。 エンジニアであれば、誰しもGitを使う機会はあると思いますので、ぜひ参考にしていただければと思います。 目次 はじめに 背景 発生した問題 解決したいこと 1. 3つあるファイルを1つにする 2. 同一ファイル名を複数存在させない 原因 1: core.ignoreCaseがtrue 2: case-sensitiveなOSでは…
2ヶ月前

DockerとSeleniumで構築するE2Eテスト環境
エムティーアイ エンジニアリングブログ
はじめに こんにちは、テクノロジー本部の田中です。 本記事は、「エムティーアイ Blog Summer 2025」の8月8日分の記事となります。 今回は、以前に個人的興味があってやってみた話「Docker上の仮想環境でブラウザを動かしてみた」の続きものとして、DockerとSeleniumを組み合わせてE2Eテスト環境を構築する方法を書きたいと思います。 Docker環境でのSelenium E2Eテスト なぜ、DockerでE2Eテスト環境を用意するのか? Webアプリケーションの品質保証において、E2Eテストは欠かせない要素です。 Dokcerを使うメリットとして どのマシンでも同じテスト…
2ヶ月前

Copilot Studioで会議室予約エージェントを作ってみた
エムティーアイ エンジニアリングブログ
この記事はMTI Blog Summer 2025の8月7日分の記事です。こんにちは、スマートコンテンツ事業部に所属している友末です。 ※この記事の画像や文章は一部生成AIを使用して作成しています。 はじめに 弊社ではフルリモートで仕事をしているのですが、たまに出社した際、会議室を予約するのが面倒だなと感じることがあります。 会議室の予約は会議室を出席者に含めた会議を作成すると、自動で予約できる仕組みになっていますが、会議室の空き状況を確認するのが手間となっています。 今回はCopilot Studioを用いて、会議室の空き確認から予約まで一連の作業を自動化するエージェントを作成してみました。…
2ヶ月前

ステータスバーのUIが崩れる?Android 15で強制適用されるEdge-to-edgeを無効化する方法
エムティーアイ エンジニアリングブログ
Android 15から強制適用されるEdge-to-Edge表示によって、既存のAndroidアプリのステータスバーUIが崩れる問題の原因と対処法を解説。Edge-to-Edgeを無効化し、従来のUIを保持するための具体的な設定方法も紹介します。
2ヶ月前

自宅/アパートの回線(動的IP)を利用して自宅サーバを外部公開してみる
エムティーアイ エンジニアリングブログ
こんにちは!スマートコンテンツ事業部で開発を担当している兒玉です。 はじめに 業務ではクラウド上に用意されたサーバーを使うことが多く、インフラの細部に触れる機会が限られています。そこで「自分で一から構築・運用できる環境を作りたい」と考え、自宅サーバーの構築に取り組みました。 特に、ネットワーク設定やセキュリティ対策を実際に手を動かして理解することを目的としています。これにより、業務でも活用できる基礎知識を深め、障害対応や構成設計に対する理解を高めることを目指しました。 この記事では、その一環として「v6プラス環境での自宅サーバー外部公開」の手順と学びを整理しています。同じような環境で検証・学習…
2ヶ月前

Webエンジニアが.NET MAUIによるネイティブアプリ開発をしてみた
エムティーアイ エンジニアリングブログ
※この記事は「エムティーアイ Blog Summer 2025」の 8/4 分の記事です。 はじめに こんにちは。エンジニアの加藤です。 私が現在担当しているプロダクトには、専属のアプリ開発担当者がいるときと、不在のときがあり、不在の場合は常駐エンジニアの中からできる人が着手するといった環境になっています。 私はWebアプリケーション開発のチーム管理・実装が主業務であり、ネイティブアプリのコードは簡単な調査のみで、業務でコードを書いた経験がありません。 そこで、今後、開発することを見据えて、ネイティブアプリ開発のいろはを学ぶことにしました。 ※ 本稿では、初学者が独学で覚えたものを記載している…
2ヶ月前

エムティーアイ Blog Summer 2025(夏のAdvent Calendar)の開催!
エムティーアイ エンジニアリングブログ
はじめに こんにちは。アプリ開発支援部の佐藤です。 うだるような暑さが続く今日この頃ですが、その暑さにも負けない「エムティーアイ Blog Summer 2025」を開催します! 昨年冬に開催したAdvent Calendarに続き、この夏も8月1日から8月29日(土日除く)の間、エンジニアがホットな技術記事をお届けします! エムティーアイ Blog Summer 2025とは? Advent Calendarの夏バージョンで、弊社のエンジニアが日頃の業務や学習で得た知識やノウハウを共有する技術ブログのイベントになります。 公開スケジュールと記事一覧 公開日 タイトル 8/1 エムティーアイ …
2ヶ月前

Microsoft Build 2025に参加しました
エムティーアイ エンジニアリングブログ
はじめに テクノロジー本部の星です。普段はSREとしてMicrosoft Azureの運用や構築などをやっています。2025-05-18~24で米国はSeattleで行われるMicrosoftの年次開発者会議のMS Buildに参加してきました。今年も去年に引き続いてAIです。その一方で今回のキーワードはAI Agent、私なりに解釈すると単なるModelを超えてTaskをこなすようになった同僚(Copilot)でした。*1基調講演内に流れた動画でも農業らしき場面や電気工事のような場面があり、数年来にはソフトウェア開発に限らず実世界上で同僚のように振る舞うのかもしれませんね。 他、衝撃を受けた…
4ヶ月前

2025 MS Buildに参加したのをきっかけにAI学習
エムティーアイ エンジニアリングブログ
はじめに AI のエージェント 化 RAG について A2Aについて GitHub Copilot (補足)時差適応について はじめに こんにちは、スマートコンテンツ事業部の天野です。2025/5/18-24、MS Build に参加するため5泊7日でシアトルに行かせていただきました。少し考えれば今年の MS Build も AI 一色であろうことがわかったはずですが、AI について知識をつける時間を全く取らず。。実際セッションを受け始めて早々に「これはまずいぞ」となり、セッション後ホテルで勉強しながらなんとか噛み砕いていったという話をメインに書きたいと思います。あまりレベルが高くなくて恐縮で…
4ヶ月前

期間限定の契約社員としてCognition社からジョインされたDevinさんを紹介します
エムティーアイ エンジニアリングブログ
システムアーキテクト兼執行役員の西川です。 今日は昨日弊社に期間限定の契約社員として入社されたDevinさんを紹介したいと思います。 Devinさんは米国サンフランシスコのCognition社から派遣された実体を持たないバーチャルな存在ですが、試験的な開発に従事していただくために一時的に入社していただきました。 Devinさんの所属 今回DevinさんにはIT委員会の開発エンジニアとしてジョインしていただきました。 IT委員会はエムティーアイ内の技術的なガイドラインを策定するバーチャル組織で、Devinさんにはその中で新しい技術を使ったプロトタイプの試作などに参加していただきます。 Devin…
8ヶ月前

\20 記事公開/2024 年エムティーアイアドベントカレンダーを最終日に振り返る
エムティーアイ エンジニアリングブログ
こんにちは! 2024 年新卒入社、アプリ開発支援部の涌井です。 本記事は、エムティーアイ - Qiita Advent Calendar 2024 - Qiita最終日の記事です。 今回、私の発案で 2024 年アドベントカレンダーを実施しました。 アドベントカレンダーの最終日の記事として、今年のアドベントカレンダーについて振り返ります。 現エンジニアリングブログ運営メンバーでは、はじめてとなる実施なので、主に運営側の視点で振り返ります。 完成したカレンダーはこちらです。↓ エムティーアイ - Qiita Advent Calendar 2024 - Qiita 実施告知記事はこちらです。↓…
9ヶ月前

【DB】ストアドプロシージャとは?新卒エンジニアの学び
エムティーアイ エンジニアリングブログ
こんにちは、 エムティーアイ Advent Calendar 2024 の12月24日分の執筆を担当させていただくスマートコンテンツ事業部で開発を担当している、新卒の長澤です。 今回は、私が業務でソースコード調査をしている際に、始めて触れたデータベース技術の1つである「ストアドプロシージャ」について、その学びをアウトプットさせていただきます。 ストアドプロシージャについて勉強してみた結果、いくつかの利点や課題があることに気づきましたので、その内容を記載しております。 1. ストアドプロシージャとは? ストアドプロシージャ とは、データベースに保存される一連のSQL文をまとめたプログラムのことで…
9ヶ月前

アーキテクチャConference2024参加レポート『Modern Trade-off Analysis for Distributed Architectures and Future Software Architecture』
エムティーアイ エンジニアリングブログ
はじめに こんにちは!テクノロジー本部ITE部の櫻田です。 この記事では、Findy社主催の「アーキテクチャConference 2024」に参加した際の学びと感想をお伝えします!特に印象に残ったNeal Fordさんの講演『Modern Trade-off Analysis for Distributed Architectures and Future Software Architecture』についてまとめています!また、こちらの記事はエムティーアイ - Qiita Advent Calendar 2024 - Qiitaの12月20日分の記事です。 イベント概要 開催情報 日時:20…
9ヶ月前

【新卒エンジニア】配属後のシャドーイング研修をご紹介
エムティーアイ エンジニアリングブログ
はじめに こんにちは、テクノロジー本部の後藤です。 エンジニア一年目ということで、この間プロジェクトへの配属を経験しました。大抵配属後には開発研修を実施されるかと思いますが、今回は僕が体験した「シャドーイング研修」なるものについて紹介します! ! プログラミングの基礎は、配属前の研修で習得する、もしくはすでに知識があるという前提で書いてます。 また、こちらはアドベントカレンダー12月23日分の記事です。 シャドーイング研修とは 僕のいるプロジェクトで勝手にそう呼んでいる研修は、 既存の機能と同じものを追加実装する という模擬開発です。 具体的には、僕の場合はWEBエンジニアなので 「☆☆画面と…
9ヶ月前

GitLensのコミットメッセージ自動生成機能で思い通りのフォーマットで生成されず、ハマった話
エムティーアイ エンジニアリングブログ
この記事はエムティーアイ アドベントカレンダ2024の12月22日分の記事です。 こんにちは、スマートコンテンツ事業部に所属している友末です。 目次 はじめに GitHub Copilot + GitLensを使用してコミットメッセージを自動生成する方法 GitLensのインストール GitHub Copilot Chatのインストール GitHub Copilotへサインイン 使用するAI Modelの設定 GitHub Copilotのオプトアウト設定 実際にコミットメッセージを自動生成する フォーマットされたコミットメッセージを生成する 思い通りのフォーマットで生成されない時の対処方法 …
9ヶ月前

部内で生成AI利用活用事例を発掘しました!何をつかっている?どんな使い方をしている?
エムティーアイ エンジニアリングブログ
この記事はエムティーアイ アドベントカレンダ2024の12月21日分の記事です。 こんにちは、スマートコンテンツ事業部に所属している友末です。 はじめに みなさん、こんにちは!最近、生成AIの話題で持ちきりですよね。ChatGPTやMidjourneyなど、様々な生成AIツールが世間を賑わせています。でも、こんな疑問を持っていませんか?「実際のビジネスシーンで、生成AIってどう使えるの?」 実は、私たちの部門でも、すでにいくつかの生成AIツールを積極的に活用しているんです。これらのツールが、日々の業務にどんな変化をもたらしているのか、気になりませんか?実はこの記事もAIツールの助けを借りて執筆…
9ヶ月前