目次
こんにちは、CTOの十川です。NCDCのエンジニアチームは「新しい技術やモダンな開発手法で、新しい事業やサービスのコンセプトを実現すること」をミッションとしています。
今回は、NCDCが2026年4月時点でよく使用しているプログラミング言語やフレームワークについて、なぜそれを選んだのかという理由とあわせて紹介します。
取り上げるのは以下の5つの領域です。
- Webフロントエンド
- モバイルアプリ
- バックエンド
- インフラとIaC(Infrastructure as Code)
- AI開発環境
NCDCではこれら以外にも機械学習やIoTも扱っていますが、それはまた別の機会にご紹介します。
標準のプログラミング言語はTypeScript
NCDCでは多くのメンバーがTypeScriptを書けるため、Webフロントエンド、バックエンドともにTypeScript / JavaScriptのエコシステムを積極的に活用しています。近年はこの方針を継続しており、2026年の現在も変わりはありません。
チーム全体でTypeScript / JavaScriptのエコシステムをベースにするという方針を持つことで、知識を共有しやすく、相互にコードレビューもしやすい環境を整えることができます。
Webフロントエンドの開発環境
React、Next.jsが主流
Webフロントエンドの開発ではフレームワークやライブラリも欠かせません。NCDCでは、React(https://reactjs.org/)やNext.js(https://nextjs.org/)をほとんどのアプリケーションで採用しています。
UI実装のアプローチ
UIの実装については、対象のアプリケーションのデザインに応じて、Googleのマテリアルデザインを基にしたReactコンポーネントライブラリのMUI(https://mui.com/)、またはカスタマイズ性に優れたUIコンポーネント集のshadcn/ui(https://ui.shadcn.com/)とCSSフレームワークのTailwind(https://tailwindcss.com/)の組み合わせを採用するケースが多いです。
NCDCのデザイナーはWebやモバイルのデザインガイドラインや、UI周りのフレームワークへの知見があるため、デザイナーとエンジニアで何を採用するか相談します。
包括的なコンポーネントライブラリであるMUIを利用することで高い生産性を発揮できるのか? デザインの柔軟性が高いshadcn/uiとTailwindを利用する方が良いのか? などを考慮してプロジェクトの目的に応じて選択しています。
状態管理ライブラリはここ数年で多様化が進んでいます。かつてはReduxが主流でしたが、NCDCでも採用プロジェクトが減り、現在は軽量なライブラリであるZustand(https://zustand-demo.pmnd.rs/)を主に使っています。
ZustandはReduxと同じFluxパターンをベースにしながらも大幅にシンプル化されており、React Hooksに慣れていれば直感的に使い始められます。バンドルサイズも非常に小さく、不要な再レンダリングを抑える最適化も備えているため、NCDCの小規模・中規模のアプリケーション開発に適しています。
なお、MetaがRecoilのリポジトリを2025年1月にアーカイブし開発を終了したため、Recoilの新規採用は避けています。
Vue.jsの採用機会は大きく減少
数年前の本記事では「お客様が自社でシステムの内製化に取り組まれるケースで、『React系だと学習コストが大きい』と判断された場合にはVue.jsをお勧めすることがある」と記載していました。
しかし、2026年時点ではシェアの差が大きくなっており、React、Next.js以外をお勧めすることはほとんどありません。
フロントエンドのCI/CD
フロントエンドのCI/CDでは、AWSを使用するプロジェクトにおいてAWS AmplifyとGitHub Actionsの組み合わせをよく採用しています。
従来のAWS CloudFront + S3と比較して、Amplifyはフロントエンドのホスティング先として非常に便利で、GitHubとの連携によるCI/CDが簡単に行なえますし、例えば画面のデザイン変更のレビューを行うための専用の環境・URLが発行され、プロジェクトマネージャーやプロダクトオーナーなどエンジニア以外もすぐに動作を確かめることができます。
モバイルアプリの開発環境
Flutter・React Nativeによるクロスプラットフォーム開発
モバイルアプリ開発ではReact Native(https://reactnative.dev/)、またはDart言語を使用するFlutter(https://flutter.dev/)を使ったクロスプラットフォーム開発が中心です。
カメラやローカルファイルシステムなどハードウェア側の機能を利用する場合は、提供されているプラグインを活用するほか、iOSであればSwift、AndroidであればKotlinを用いて自社でプラグインを実装します。
Flutter・React Nativeなどのクロスプラットフォーム技術の比較については、下記の別記事もあわせてご覧ください。
- クロスプラットフォームアプリ開発技術の比較(React Native、Flutter、KMP…etc.)
- Expoの進化が変えたReact Nativeの現在地 — Flutter/KMPとの比較で考える技術選定
Swift・Kotlinでのネイティブアプリ開発
ハードウェア機能を使う割合が特に高い場合 —たとえばカメラが主体のアプリケーション— は、全体をSwiftまたはKotlinで開発します。クロスプラットフォームフレームワークを経由せずネイティブで実装することで、パフォーマンスや細かな挙動のコントロールが必要な場面に対応しています。
バックエンドの開発環境
NCDCではフロントエンドとバックエンドを分離しているため、バックエンドはほとんどのケースでAPIとして実装されます。
TypeScript + Node.js + Express / NestJS / Hono
バックエンドの第一の選択肢はJavaScript(TypeScript)+Node.jsです。採用するフレームワークは実行基盤によって異なります。
Express(https://expressjs.com/)はAPIやWebアプリケーション向けのフレームワークで、機能が少なく計量で自由度が高い特徴があります。その反面、プロジェクトによって実装スタイルが異なりやすいという側面もあります。
NestJS(https://nestjs.com/)はExpressに比べて多くの機能を標準で提供しています。そのため「とりあえずNestJSの標準のやり方に沿って進めよう」と決めることでチームの統一感を出しやすいのが特徴です。
そして近年、NCDCで新たに採用しはじめたのがHono(https://hono.dev/)です。HonoはWeb標準APIをベースとした非常に軽量なWebフレームワークで、AWS Lambdaなどサーバレス環境との相性がよく、シンプルな構成で高いパフォーマンスを発揮できるため、用途に応じてExpress・NestJSと使い分けています。
Python + FastAPI
NCDCではIoTで集めた大量のセンサーデータを扱ったり、収集したデータを機械学習のフレームワークを用いて処理ことが多いです。また、生成AIを始めとするAI系のライブラリもPythonでは豊富なため、データ処理ライブラリやAI系のライブラリを多用する場面ではプログラミング言語にPythonを採用し、フレームワークにはFastAPI(https://fastapi.tiangolo.com/ja/)を使用します。
バックエンドのCI/CD
バックエンドのCI/CDにはGitHub Actionsを中心に活用しています。インフラ構成はAWS CDKで管理し、デプロイのパイプラインと一体で運用できる体制を整えています。
インフラとIaC(Infrastructure as Code)
NCDCには社内サーバーはなく、検証環境・本番環境はすべてクラウドで運用しています。AWSが最も多く、AzureやGoogle Cloudも活用しています。サーバーのメンテナンスコストを極力抑えるため、サーバレス・コンテナ・マネージドサービスを積極的に採用しており、具体的にはAWS LambdaやAmazon ECS、Amazon Cognitoなどを多く使用しています。
IaCの領域では現在、AWS Cloud Development Kit (AWS CDK)を中心に採用しています。TypeScriptやPythonといった慣れ親しんだプログラミング言語でインフラを定義できるため、エディタのサポートやコンパイルによる事前のエラー検出、共通処理の関数化など、コードとしての品質管理がしやすいのが大きなメリットです。
各ツールの使い分けは以下のとおりです。
- AWS CDK:プログラミング言語でインフラを定義できる。AWS環境での標準選択。以前はAWS CloudFormationを良く使用していましたが、書きやすさやメンテナンス性の観点でAWS CDKを選択しています。
- Terraform:AzureなどAWS以外のクラウドを使用する際に採用
NCDCはAWS Lambdaサービスデリバリープログラム認定を取得しており、Lambda活用のノウハウを多く持つAWSパートナーとして認定されています。
AI開発環境
ここ1〜2年で、AIを活用した開発支援ツールがエンジニアの日常的な道具として定着しつつあります。
Claud Code / Claude、GitHub Copilot
現時点ではほとんどのエンジニアがClaude Code / Claude、GitHub Copilotのどちらかを使用しています。
- Claude Code / Claude:高い推論能力や日本語の扱いも優秀で、コード実装だけでなく、より上流のシステム設計や仕様の整理から活用しています。エンジニアはもちろん、コンサルタントや社内のコーポレート部門でも活用しています。
- GitHub Copilot:NCDCではGitHub Copilotが発表された当初から採用しています。GitHub CopilotはGitHubと統合されており、アカウントの管理や、さまざまなメトリクスをGitHub上で見られるメリットがあります。Claudeと異なり用途はコーディングに限定されますが、開発組織には便利な機能が備わっています(関連記事:管理者目線でGitHub Copilotの方が優れていること)
継続的にAI開発ツールの評価を実施
この領域は毎週のように新しいトレンドがあり、数カ月で環境が大きく変わるため、その他のツールも継続的に評価を行っています。
NCDCにはAIを使った開発の情報収集を行うチームが存在し、新たに有用そうなツールが登場した場合は社内で情報を共有し、積極的に試用・評価を行っています。例えば、OpenAI Codex、Cursor、Kiroなども試しています。
検証を経て評価が高いツールがあれば、利用規約やセキュリティに関する情報を加味して、本格採用の可否を検討します。
なお、使用して良いAI開発ツール等のルールは、社内の「生成AI利用ガイドライン」に定義しており、このガイドラインを定期的に更新しています。
このようにエンジニアは複数のツールを目的に応じて使い分けながら、開発の生産性向上に取り組んでいます。
開発環境選びで大切なのは「将来性」と「組織との相性」
世の中にはVue.js、Java、PHP、Goなど優れた言語・フレームワークが数多く存在します。NCDCがReactやTypeScript、そしてHonoを選んでいるのは、それらが最も優れているからではなく、NCDCのエンジニアのスキルセットや組織の特性に合っているからです。
5〜10人規模の小さなチームが複数並行してプロダクト開発を行うNCDCでは、フロントエンドもバックエンドも同じTypeScriptで書けることで、チーム内でコードを読み合い、レビューし合える環境が自然に生まれます。この「フルスタックでTypeScriptが読める」という状態が、少人数チームの機動力を支えています。
一方で、技術は常に更新し続けることも重要です。毎年すべてを入れ替えるのは現実的ではありませんが、Honoの採用やAI開発ツールの積極的な活用のように、定期的に新しい技術を取り入れ、組織全体の技術力をアップデートしていく姿勢を大切にしています。
試してみたものの標準採用には至らないケースがあっても、それ自体が組織の学びになると考えています。
お客様の開発環境検討支援も可能
NCDCでは、自社での開発経験や技術検証で得た知見を、お客様のプロジェクト支援にも積極的に活用しています。
「デジタル領域の競争力を高めるために、モダンな開発環境を取り入れたい。しかし、自社の組織でそれをどう運用し、定着させるべきかわからない」といった悩みは、多くの企業が直面する課題です。
特に「これから内製化のチームを立ち上げたい」とお考えのお客様に対しては、どのようなエンジニアを採用・育成すべきかという体制構築のコンサルティングから、既存メンバーのスキルやビジネス特性に最も合致する技術選定の支援まで、トータルで提供しています。
NCDCは大手企業における内製化支援の実績が豊富にありますので、お気軽にご相談ください。
モダンな開発手法に興味のあるエンジニアを募集
NCDCでは、フロントエンド・バックエンド・モバイル・機械学習・クラウドなどの領域でエンジニアを募集しています。新しい技術やモダンな開発手法に興味のある方は、ぜひ採用情報ページをご覧ください。

-1024x576.png)












