講義で扱うテーマは以下の通りです (但し、埼玉大学 enPiT の場合は Google Android Studio / View API のみです)。
モダンな「宣言的 UI (declarative UI)」はコードに UI 部品が埋め込まれるスタイルの開発手法であり、一方で、「非宣言的 UI (nondeclarative UI)」はグラフィカルに UI 部品を配置したものは、別のソースコードに生成または定義されるスタイルの開発手法です。後者は敷居が低く分かりやすいと言えますが、慣れてくれば前者の可搬性の高さ (共同製作などにおいて) のメリットがあります。
非宣言的 UI のなかには「命令的 UI (imperative UI)」があり、それは Xcode 上の UIKit や Android Studio 上の View API における UI 設計そのものではありません。静的な UI は XML コードへ定義され、プログラマは直感的に UI を設計できます。そして、伝統的な命令的 UI による部品配置を混在させることができ、動的な UI を生成する場合に使用されます。
| モバイル端末 / オペレーティングシステム (OS) | iPhone / iOS (2007〜) | 各社スマートフォン / Android (2008〜) |
|---|---|---|
| 統合開発環境 | Xcode (2003〜) | Android Studio (2014〜) |
| 開発環境の対応機種 / OS | Apple Mac / macOS のみ | PC / GNU Linux, PC / Microsoft Windows, Apple Mac / macOS |
| 開発言語 | Swift (2014〜) | Kotlin (2016〜) |
| 非宣言的 UI 開発手法、 及び参考図書、 サポート情報 | UIKit (2008〜) 諏訪 著「iPhone アプリ開発講座 はじめての Swift」(2016)† 本ページ #978-4797385281同著「Swift5 対応ノート」(2019〜2023) | View API (2014〜) 金田 著「はじめての Android プログラミング」(2018〜2021)† https://www.sbcr.jp/product/4815607968/ |
| 宣言的 UI 開発手法、 及び参考図書、 サポート情報 | SwiftUI (2019〜) 藤、小林、小林 著「iPhone アプリ開発集中講座」(2018〜2024)† https://blog.code-candy.com/swiftbook2024/ | Jetpack Compose (2021〜)† 金田 著「イチからはじめる Android プログラミング」(2024)† https://smartphone-zine.com/1kara/ |
| アプリ配布 | App Store (2008〜) | Android Market (2008〜2012), Google Play (2012〜) |
| その他の開発言語 | C/C++, Objective-C/C++, Java, Python, Ruby 他 | 非公式 Java, C/C++, Python, Ruby, Rust, Scala, Haskell, Haxe 他 |
| その他の端末 / OS | iPad (2010〜) / iOS (〜2019), iPad OS (2019〜)、Apple TV (2007〜) / tvOS (2015〜)、Apple Watch / watchOS (2015〜)、Apple Vision / visionOS (2024〜) | 各社タブレット / Android (2010〜)、各社 AV デバイス / Android (2019〜)、各社スマートウォッチ / Wear OS (2014〜) |
| UI ガイドライン | Human Interface Guidelines | Android Design |
| 開発一次情報源、 及びドキュメント | https://developer.apple.com/jp/xcode/ https://developer.apple.com/documentation/ | https://developer.android.com/studio?hl=ja https://developer.android.com/reference |
| 開発環境の出自 | NeXTSTEP (1989〜) | IntelliJ IDEA (2000〜) |
| その他の非宣言的 UI 開発手法 for OS / 開発言語 | JUCE (2004〜) for Windows, macOS, GNU Linux, iOS, Android / C++ Qt (1995〜) for Windows, macOS, GNU Linux, iOS, Android 他 / C++ wxWidgets (1992〜) for Windows, macOS, GNU Linux, iOS, Android 他 / C++ | |
| その他の宣言的 UI 開発手法 for OS / 開発言語 | Google Flutter (2018〜), Flock (2024〜) for Windows, Linux, macOS, iOS, Android, Google Fuchsia / Dart, C/C++ Tamappe 著「Flutter で始めるはじめてのモバイルアプリ開発」(2025) https://gihyo.jp/book/2025/978-4-297-14639-9 | |
| Meta React Native (2015〜) for Android, iOS, Windows / Javascript, Java, C/C++, Objective-C/C++, Python 中川 著「基礎から学ぶ React Native 入門」(2021) https://www.shoeisha.co.jp/book/detail/9784798169569 | ||
† これら書籍は新版が毎年出来されることがありますので、購入される場合はよく確認するように。
† モバイルアプリの開発環境で使われるリソースは日進月歩ですので、書籍通りのそのままでは上手く行かないことは多々あります。つまずいたら書籍のサポートページ、さらには、ネット検索などが必要になるときがあります。