Skip to content

A hands-on guide to learning Objective-C from basics to practical examples, covering syntax, OOP, and file I/O.

Notifications You must be signed in to change notification settings

timeless-residents/handson-objective-c

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Objective-C ハンズオンガイド

このリポジトリは、Objective-C を段階的に学び、実践的なスキルを身につけるためのハンズオンガイドです。usecase-000 から usecase-020 までの 21 のサンプルを通じて、基本構文からオブジェクト指向、ファイル操作までをカバーします。

プロジェクト構成

handson-objective-c/
├── scripts/
│   └── gen-000-020.sh  # usecase-000 から usecase-020 を生成するスクリプト
├── showroom/
│   ├── usecase-000/    # Hello World
│   ├── usecase-001/    # 変数と演算
│   └── ... (usecase-002 から usecase-020 まで)
├── .gitignore          # 不要なファイルを除外
└── README.md           # このファイル

環境構築

Mac 上で動作します。以下の手順で環境を準備してください。

前提条件

  • macOS: Objective-C の実行に必要(Foundation フレームワークを使用)。
  • clang: コンパイラ(Xcode または Command Line Tools で提供)。
  • Git: リポジトリのクローン用。

手順

  1. Command Line Tools のインストール
    xcode-select --install
  2. リポジトリのクローン
    git clone <リポジトリURL>
    cd handson-objective-c
  3. usecase の生成
    chmod +x scripts/gen-000-020.sh
    ./scripts/gen-000-020.sh

使い方

usecase は独立して動作し、以下の手順で実行できます。

  1. ディレクトリに移動
    cd showroom/usecase-XXX  # XXX は 000 から 020
  2. コンパイル
    clang -fobjc-arc -framework Foundation Main.m -o main
  3. 実行
    ./main

例: usecase-000 の場合

cd showroom/usecase-000
clang -fobjc-arc -framework Foundation Main.m -o main
./main
# 出力: Hello, World! - Starting the Objective-C journey

各 usecase の概要と教育的意義

以下に、各 usecase の内容と学習ポイントを説明します。

  • usecase-000: 基本 - Hello World
    • 内容: シンプルな "Hello, World!" 表示。
    • 学習ポイント: Objective-C の基本構造と printf の使用。
  • usecase-001: 変数と基本演算
    • 内容: 整数変数の定義と加算。
    • 学習ポイント: 変数の宣言と基本的な算術演算。
  • usecase-002: 条件分岐
    • 内容: 偶数/奇数の判定。
    • 学習ポイント: if-else 文の使用。
  • usecase-003: ループ
    • 内容: 1 から 5 までのカウント。
    • 学習ポイント: for ループの基本。
  • usecase-004: NSString の基本
    • 内容: Objective-C の文字列操作。
    • 学習ポイント: NSStringNSLog の導入。
  • usecase-005: 関数定義
    • 内容: 加算関数の作成。
    • 学習ポイント: 関数の定義と呼び出し。
  • usecase-006: 配列 (NSArray)
    • 内容: 数値の配列表示。
    • 学習ポイント: NSArray の基本操作。
  • usecase-007: 配列のループ
    • 内容: 配列要素のイテレーション。
    • 学習ポイント: for-in ループの使用。
  • usecase-008: クラスの基本
    • 内容: Person クラスの作成と利用。
    • 学習ポイント: オブジェクト指向の基礎(@interface, @implementation)。
  • usecase-009: 初期化メソッド
    • 内容: カスタム初期化付きクラス。
    • 学習ポイント: init メソッドの実装。
  • usecase-010: カテゴリ
    • 内容: NSString の逆順メソッド追加。
    • 学習ポイント: カテゴリによる既存クラスの拡張。
  • usecase-011: プロトコル
    • 内容: Greetable プロトコルの実装。
    • 学習ポイント: プロトコルの定義と準拠。
  • usecase-012: NSMutableArray
    • 内容: 可変配列への要素追加。
    • 学習ポイント: NSMutableArray の操作。
  • usecase-013: NSDictionary
    • 内容: 辞書型のデータ操作。
    • 学習ポイント: NSDictionary のキー・バリュー管理。
  • usecase-014: ブロック
    • 内容: シンプルなブロックの実行。
    • 学習ポイント: ブロック構文と匿名関数の利用。
  • usecase-015: 例外処理
    • 内容: 配列の範囲外アクセスと例外補足。
    • 学習ポイント: @try, @catch, @finally の使用。
  • usecase-016: メモリ管理 (MRC vs ARC)
    • 内容: ARC での動作と MRC の説明。
    • 学習ポイント: メモリ管理の歴史と現代的アプローチ。
  • usecase-017: ファイル書き込み
    • 内容: テキストファイルへの書き込み。
    • 学習ポイント: ファイル出力の基本。
  • usecase-018: ファイル読み込み
    • 内容: 自前で作成したファイルの読み込み。
    • 学習ポイント: ファイル入力とエラー処理。
  • usecase-019: シンプルなデータ処理
    • 内容: 学生のスコア平均計算。
    • 学習ポイント: オブジェクトのリスト操作。
  • usecase-020: 実用例 - FizzBuzz
    • 内容: FizzBuzz アルゴリズムの実装。
    • 学習ポイント: 実践的なロジック構築。

注意点

  • ファイルの残留: usecase-017, usecase-018 では output.txt が生成されます。.gitignore で除外されていますが、必要に応じて削除してください。
  • 依存関係: 各 usecase は独立して動作するよう設計されています。

コントリビューション

改善案や追加の usecase 提案があれば、プルリクエストをお待ちしています!

ライセンス

MIT ライセンスの下で提供されます。詳細は LICENSE ファイルをご覧ください(必要に応じて追加)。

About

A hands-on guide to learning Objective-C from basics to practical examples, covering syntax, OOP, and file I/O.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published