フレームワークとの統合

watchOS アプリの作成





訳注:以下、必要な場所においては Mac と iPhone 両方のセクションを提供しています。
Mac → セクション 3、iPhone → セクション 103 とします。









    LandmarkDetail.swift


  1. import SwiftUI
  2. struct LandmarkDetail: View {
  3. @EnvironmentObject var modelData: ModelData
  4. var landmark: Landmark
  5. var landmarkIndex: Int {
  6. modelData.landmarks.firstIndex(where: { $0.id == landmark.id })!
  7. }
  8. var body: some View {
  9. Text("Hello, World!")
  10. }
  11. }
  12. struct LandmarkDetail_Previews: PreviewProvider {
  13. static var previews: some View {
  14. LandmarkDetail()
  15. }
  16. }


    LandmarkDetail.swift


  1. struct LandmarkDetail_Previews: PreviewProvider {
  2. static var previews: some View {
  3. let modelData = ModelData()
  4. return LandmarkDetail(landmark: modelData.landmarks[0])
  5. .environmentObject(modelData)
  6. }
  7. }


プレビューその 1



    LandmarkDetail.swift


  1. var body: some View {
  2. CircleImage(image: landmark.image.resizable())
  3. .scaledToFill()
  4. }
  5. }


プレビューその 2



    LandmarkDetail.swift


  1. struct LandmarkDetail_Previews: PreviewProvider {
  2. static var previews: some View {
  3. let modelData = ModelData()
  4. return Group {
  5. LandmarkDetail(landmark: modelData.landmarks[0])
  6. .environmentObject(modelData)
  7. .previewDevice("Apple Watch Series 5 - 44mm")
  8. LandmarkDetail(landmark: modelData.landmarks[1])
  9. .environmentObject(modelData)
  10. .previewDevice("Apple Watch Series 5 - 40mm")
  11. }
  12. }
  13. }


プログラム全体 その 1



プレビューその 3



    LandmarkDetail.swift


  1. var body: some View {
  2. VStack {
  3. CircleImage(image: landmark.image.resizable())
  4. .scaledToFill()
  5. Text(landmark.name)
  6. .font(.headline)
  7. .lineLimit(0)
  8. Toggle(isOn: $modelData.landmarks[landmarkIndex].isFavorite) {
  9. Text("Favorite")
  10. }
  11. Divider()
  12. Text(landmark.park)
  13. .font(.caption)
  14. .bold()
  15. .lineLimit(0)
  16. Text(landmark.state)
  17. .font(.caption)
  18. }
  19. }
  20. }


プログラム全体 その 2



プレビューその 4



    LandmarkDetail.swift


  1. var body: some View {
  2. ScrollView {
  3. VStack {
  4. CircleImage(image: landmark.image.resizable())



  1. Text(landmark.state)
  2. .font(.caption)
  3. }
  4. }
  5. }
  6. }


プレビューその 5



    LandmarkDetail.swift


  1. VStack {
  2. CircleImage(image: landmark.image.resizable())
  3. .scaledToFit()
  4. Text(landmark.name)



  1. .font(.caption)
  2. }
  3. .padding(16)
  4. }
  5. }
  6. }


プレビューその 6



    LandmarkDetail.swift


  1. Text(landmark.state)
  2. .font(.caption)
  3. Divider()
  4. MapView(coordinate: landmark.locationCoordinate)
  5. .scaledToFit()
  6. }
  7. .padding(16)


    LandmarkDetail.swift


  1. .padding(16)
  2. }
  3. .navigationTitle("Landmarks")
  4. }
  5. }


プレビューその 7



プログラム全体 その 3







セクション 1セクション 2セクション 3
セクション 4セクション 5
セクション 101セクション 102セクション 103
セクション 104セクション 105






目次
Xcode の新機能

フレームワーク

  • SwiftUI

  • ビューの作成と結合

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5

    セクション 6


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    セクション 106

    ビルドリストとナビゲーション

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5

    セクション 6

    セクション 7

    セクション 8


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    セクション 106

    セクション 107

    セクション 108

    ユーザー入力の処理

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5

    セクション 6


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    セクション 106

    パスとシェイプの描画

    セクション 1

    セクション 2

    セクション 3

    セクション 4


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    ビューと移行のアニメーション

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    複雑なインターフェースの構成

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    UI コントロールを扱う

    セクション 1

    セクション 2

    セクション 3

    セクション 4


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    UIKit とのインターフェース

    セクション 1

    セクション 2

    セクション 3

    セクション 4


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    watchOS アプリの作成

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    macOS アプリの作成

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5

    セクション 6

    セクション 7


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    セクション 106

    セクション 107