SwiftUIを中心に、個人開発したiOSアプリを企画・設計・実装・テストし、App Storeでリリースしています。

以下は実務経験ではなく、個人開発・学習における経験です。特に記載がない項目は、公開中の「Re:Mind ランダムリマインダー」で使用しています。

強み

  • SwiftUIによるiOSアプリを、要件整理からApp Store公開まで一通り経験
  • SwiftData・CloudKitを用いたデータ永続化とiCloud同期
  • ローカル通知の仕様や上限を考慮した通知スケジューリング
  • Protocolによる外部依存の抽象化と、Mockを用いたテスト
  • Swift Testing・XCTest・Xcode Cloudによる品質確認と継続的なビルド

iOSアプリ開発

ID分類技術・スキル経験・実装内容
IOS-01言語Swift基本文法、値型、Optional、Error、Protocol、Extension、非同期処理を用いたアプリ実装
IOS-02UISwiftUI画面構築、Navigation、フォーム、List、状態管理、再利用View、ViewModifierを用いたアプリ実装
IOS-03状態管理Observation@Observableを用いたStoreの状態管理
IOS-04データ永続化SwiftData@ModelModelContext@Queryを用いた保存・取得・削除・並び替え
IOS-05クラウド同期CloudKitSwiftDataのデータをiCloud経由で同期し、CloudKitの本番スキーマをデプロイ
IOS-06設定保存UserDefaults / AppStorage通知ON/OFF、通知間隔、基準時刻などの設定値を保存
IOS-07通知UserNotifications通知権限、予約・削除、最大64件を考慮した再予約、通知内容・時刻のランダム化
IOS-08AppleフレームワークStoreKit / MessageUI / UIKitレビュー依頼、メール画面、設定画面への遷移で利用
IOS-09文字列管理String CatalogLocalizable.xcstringsによる表示文字列の管理

設計・品質

ID分類技術・スキル経験・実装内容
ARC-01アーキテクチャStoreパターンView、Model、ReminderStore、NotificationStoreへ責務を分離
ARC-02設計Protocol指向・依存性注入通知、UserDefaults、現在時刻への依存をProtocolで抽象化
ARC-03エラーハンドリングValidation / Custom Error空文字・文字数の入力検証、通知予約失敗の件数と原因を画面表示
TST-01単体テストSwift TestingStore、日時計算、入力検証、通知予約などを@Test#expectで検証
TST-02統合テストSwift Testing / SwiftDataインメモリのModelContainerを使用し、保存から通知設定までのフローを検証
TST-03テストダブルMock通知スケジューラー、UserDefaults、現在時刻を差し替えて再現性を確保
TST-04UI・性能テストXCTestUIテストターゲット、起動テスト、起動パフォーマンステストを作成

リリース・開発環境

ID分類技術・スキル経験・実装内容
REL-01リリースApp Store Connect署名、アーカイブ、審査対応を経てiOSアプリをApp Storeへ公開
REL-02CI/CDXcode Cloudビルド・テストを行うワークフローとして使用
DEV-01IDEXcode実装、デバッグ、テスト、アーカイブで使用
DEV-02バージョン管理Git / GitHubブランチ・コミットによる履歴管理とリモートリポジトリ運用
DEV-03パッケージ管理Swift Package ManagerSwift向けパッケージ管理の基本操作と導入経験
DEV-04エディタVisual Studio CodeMarkdown、設定ファイル、Webサイト関連ファイルの編集
DEV-05AI支援開発Codex / Claude / Cursor / Antigravity調査、設計案の比較、実装補助、レビュー、ドキュメント整備に活用。生成結果は実装とテストで確認

デザイン・ドキュメント

ID分類技術・スキル経験・実装内容
DSG-01ユーザーフローFigJam画面遷移とユーザーフローの整理
DSG-02ワイヤーフレームGoodnotes / Marvel手書きの画面案作成とプロトタイプ確認
DSG-03UIデザインFigmaUI案・デザイン作成の学習、利用経験
DOC-01ドキュメントMarkdown / Obsidian設計判断、学習記録、README、ポートフォリオコンテンツの管理
WEB-01ポートフォリオQuartz / Cloudflare PagesMarkdownベースのポートフォリオサイト構築・公開

学習・利用経験

次の技術は学習または小規模な検証・利用経験がありますが、現在のポートフォリオアプリの主要構成には採用していません。

ID分類技術補足
EXP-01データ永続化Core DataSwiftDataとの違いや採用条件を学習
EXP-02BaaSFirebase基本的な機能・利用方法を学習
EXP-03データベースRealmSwift基本的な永続化方法を学習
EXP-04パッケージ管理CocoaPods導入・管理方法の学習、利用経験

制作物