├── README.md
├── Shared
├── Assets.xcassets
│ ├── AccentColor.colorset
│ │ └── Contents.json
│ ├── AppIcon.appiconset
│ │ └── Contents.json
│ ├── Contents.json
│ ├── Profile.imageset
│ │ ├── Contents.json
│ │ └── Profile.jpg
│ ├── images-2.imageset
│ │ ├── Contents.json
│ │ └── images-2.jpeg
│ ├── images-3.imageset
│ │ ├── Contents.json
│ │ └── images-3.jpeg
│ ├── images-4.imageset
│ │ ├── Contents.json
│ │ └── images-4.jpeg
│ ├── images-5.imageset
│ │ ├── Contents.json
│ │ └── images-5.jpeg
│ ├── images-6.imageset
│ │ ├── Contents.json
│ │ └── images-6.jpeg
│ ├── images-7.imageset
│ │ ├── Contents.json
│ │ └── images-7.jpeg
│ └── images.imageset
│ │ ├── Contents.json
│ │ └── images.jpeg
├── ContentView.swift
├── Extension
│ ├── AddStatusButton.swift
│ └── Image+.swift
├── Home
│ ├── InstaView.swift
│ ├── Post.swift
│ ├── PostView.swift
│ └── StoryView.swift
├── ImagePicker
│ ├── ImagePicker.swift
│ └── ImagePickerControlView.swift
├── LoveTab
│ ├── FollowerRequest.swift
│ ├── LoveTab.swift
│ └── ModelLove.swift
├── Profile
│ ├── ProfileDesc.swift
│ ├── ProfileView.swift
│ ├── SectionViews.swift
│ └── TOOLBarView.swift
├── Search
│ ├── PlayerView.swift
│ └── SearchBar.swift
├── SwiftUI2App.swift
└── flower.mov
├── SwiftUI2.0.png
├── SwiftUI2.entitlements
├── SwiftUI2.xcodeproj
├── project.pbxproj
├── project.xcworkspace
│ ├── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── IDEWorkspaceChecks.plist
└── xcuserdata
│ └── apple.xcuserdatad
│ └── xcschemes
│ └── xcschememanagement.plist
├── Tests iOS
├── Info.plist
└── Tests_iOS.swift
├── Tests macOS
├── Info.plist
└── Tests_macOS.swift
├── iOS
└── Info.plist
├── images
├── MacOSHome.png
├── MacOSLove1.png
├── MacOSSearch1.png
├── MacOsAdd.png
├── MacOsProfile.png
├── MacOsProfile2.png
├── MacOsSearch.png
├── SwiftUI2.0.png
├── WholeOS.png
├── iPadAdd1.png
├── iPadHome.png
├── iPadLove1.png
├── iPadProfile2.png
├── iPadSearch1.png
├── iPadSearch2.png
├── iPhoneAdd.png
├── iPhoneHome1.png
├── iPhoneLove3.png
├── iPhoneLove4.png
├── iPhoneProfile.png
├── iPhoneSearch.png
├── iPhoneSearch2.png
└── iPhoneSearch3.png
└── macOS
├── Info.plist
└── macOS.entitlements
/README.md:
--------------------------------------------------------------------------------
1 | # Insta View
2 |
3 | > Instagram like app in SwiftUI for iOS, iPadOS and macOS.
4 |
5 |
6 | ## macOS
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 | ## iOS
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 | ## iPadOS
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
--------------------------------------------------------------------------------
/Shared/Assets.xcassets/AccentColor.colorset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "colors" : [
3 | {
4 | "idiom" : "universal"
5 | }
6 | ],
7 | "info" : {
8 | "author" : "xcode",
9 | "version" : 1
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/Shared/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "iphone",
5 | "scale" : "2x",
6 | "size" : "20x20"
7 | },
8 | {
9 | "idiom" : "iphone",
10 | "scale" : "3x",
11 | "size" : "20x20"
12 | },
13 | {
14 | "idiom" : "iphone",
15 | "scale" : "2x",
16 | "size" : "29x29"
17 | },
18 | {
19 | "idiom" : "iphone",
20 | "scale" : "3x",
21 | "size" : "29x29"
22 | },
23 | {
24 | "idiom" : "iphone",
25 | "scale" : "2x",
26 | "size" : "40x40"
27 | },
28 | {
29 | "idiom" : "iphone",
30 | "scale" : "3x",
31 | "size" : "40x40"
32 | },
33 | {
34 | "idiom" : "iphone",
35 | "scale" : "2x",
36 | "size" : "60x60"
37 | },
38 | {
39 | "idiom" : "iphone",
40 | "scale" : "3x",
41 | "size" : "60x60"
42 | },
43 | {
44 | "idiom" : "ipad",
45 | "scale" : "1x",
46 | "size" : "20x20"
47 | },
48 | {
49 | "idiom" : "ipad",
50 | "scale" : "2x",
51 | "size" : "20x20"
52 | },
53 | {
54 | "idiom" : "ipad",
55 | "scale" : "1x",
56 | "size" : "29x29"
57 | },
58 | {
59 | "idiom" : "ipad",
60 | "scale" : "2x",
61 | "size" : "29x29"
62 | },
63 | {
64 | "idiom" : "ipad",
65 | "scale" : "1x",
66 | "size" : "40x40"
67 | },
68 | {
69 | "idiom" : "ipad",
70 | "scale" : "2x",
71 | "size" : "40x40"
72 | },
73 | {
74 | "idiom" : "ipad",
75 | "scale" : "1x",
76 | "size" : "76x76"
77 | },
78 | {
79 | "idiom" : "ipad",
80 | "scale" : "2x",
81 | "size" : "76x76"
82 | },
83 | {
84 | "idiom" : "ipad",
85 | "scale" : "2x",
86 | "size" : "83.5x83.5"
87 | },
88 | {
89 | "idiom" : "ios-marketing",
90 | "scale" : "1x",
91 | "size" : "1024x1024"
92 | },
93 | {
94 | "idiom" : "mac",
95 | "scale" : "1x",
96 | "size" : "16x16"
97 | },
98 | {
99 | "idiom" : "mac",
100 | "scale" : "2x",
101 | "size" : "16x16"
102 | },
103 | {
104 | "idiom" : "mac",
105 | "scale" : "1x",
106 | "size" : "32x32"
107 | },
108 | {
109 | "idiom" : "mac",
110 | "scale" : "2x",
111 | "size" : "32x32"
112 | },
113 | {
114 | "idiom" : "mac",
115 | "scale" : "1x",
116 | "size" : "128x128"
117 | },
118 | {
119 | "idiom" : "mac",
120 | "scale" : "2x",
121 | "size" : "128x128"
122 | },
123 | {
124 | "idiom" : "mac",
125 | "scale" : "1x",
126 | "size" : "256x256"
127 | },
128 | {
129 | "idiom" : "mac",
130 | "scale" : "2x",
131 | "size" : "256x256"
132 | },
133 | {
134 | "idiom" : "mac",
135 | "scale" : "1x",
136 | "size" : "512x512"
137 | },
138 | {
139 | "idiom" : "mac",
140 | "scale" : "2x",
141 | "size" : "512x512"
142 | }
143 | ],
144 | "info" : {
145 | "author" : "xcode",
146 | "version" : 1
147 | }
148 | }
149 |
--------------------------------------------------------------------------------
/Shared/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "author" : "xcode",
4 | "version" : 1
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/Shared/Assets.xcassets/Profile.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "Profile.jpg",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Shared/Assets.xcassets/Profile.imageset/Profile.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/Shared/Assets.xcassets/Profile.imageset/Profile.jpg
--------------------------------------------------------------------------------
/Shared/Assets.xcassets/images-2.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "images-2.jpeg",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Shared/Assets.xcassets/images-2.imageset/images-2.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/Shared/Assets.xcassets/images-2.imageset/images-2.jpeg
--------------------------------------------------------------------------------
/Shared/Assets.xcassets/images-3.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "images-3.jpeg",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Shared/Assets.xcassets/images-3.imageset/images-3.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/Shared/Assets.xcassets/images-3.imageset/images-3.jpeg
--------------------------------------------------------------------------------
/Shared/Assets.xcassets/images-4.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "images-4.jpeg",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Shared/Assets.xcassets/images-4.imageset/images-4.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/Shared/Assets.xcassets/images-4.imageset/images-4.jpeg
--------------------------------------------------------------------------------
/Shared/Assets.xcassets/images-5.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "images-5.jpeg",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Shared/Assets.xcassets/images-5.imageset/images-5.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/Shared/Assets.xcassets/images-5.imageset/images-5.jpeg
--------------------------------------------------------------------------------
/Shared/Assets.xcassets/images-6.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "images-6.jpeg",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Shared/Assets.xcassets/images-6.imageset/images-6.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/Shared/Assets.xcassets/images-6.imageset/images-6.jpeg
--------------------------------------------------------------------------------
/Shared/Assets.xcassets/images-7.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "images-7.jpeg",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Shared/Assets.xcassets/images-7.imageset/images-7.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/Shared/Assets.xcassets/images-7.imageset/images-7.jpeg
--------------------------------------------------------------------------------
/Shared/Assets.xcassets/images.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "filename" : "images.jpeg",
5 | "idiom" : "universal",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "scale" : "2x"
11 | },
12 | {
13 | "idiom" : "universal",
14 | "scale" : "3x"
15 | }
16 | ],
17 | "info" : {
18 | "author" : "xcode",
19 | "version" : 1
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/Shared/Assets.xcassets/images.imageset/images.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/Shared/Assets.xcassets/images.imageset/images.jpeg
--------------------------------------------------------------------------------
/Shared/ContentView.swift:
--------------------------------------------------------------------------------
1 | import SwiftUI
2 |
3 | struct Posts: View {
4 | var body: some View {
5 | ScrollView {
6 | LazyVStack(spacing: 40) {
7 | StoryLineView()
8 | ForEach(Post.posts) { post in
9 | PostView(post: post)
10 | }
11 | }
12 | .padding(.vertical)
13 | }
14 | }
15 | }
16 |
17 | struct StoryLineView: View {
18 | var body: some View {
19 | ScrollView(.horizontal,showsIndicators: false) {
20 | HStack(spacing: 20) {
21 | StoryView(index: 0)
22 | ForEach(1.. some View {
12 | configuration.label.clipShape(Circle()).overlay(
13 | Image(systemName: "plus.circle.fill")
14 | ,alignment: .bottomTrailing)
15 | .scaleEffect(configuration.isPressed ? 0.7 : 1.0)
16 | .opacity(configuration.isPressed ? 0.3 : 1.0)
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/Shared/Extension/Image+.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ImagePlus.swift
3 | // SMSwiftUI1.0
4 | //
5 | // Created by Apple on 10/07/20.
6 | //
7 |
8 | import Foundation
9 | import SwiftUI
10 |
11 | extension Image {
12 | static var postImages = [
13 | (Image(uiImage: #imageLiteral(resourceName: "Profile")),"Your Story"),
14 | (Image(uiImage: #imageLiteral(resourceName: "Profile")),"Sy_Yadav"),
15 | (Image(uiImage: #imageLiteral(resourceName: "images-5")),"Amit_Samant"),
16 | (Image(uiImage: #imageLiteral(resourceName: "images-3")),"Nalin_Porwal"),
17 | (Image(uiImage: #imageLiteral(resourceName: "images-7")),"PJ_Yadav"),
18 | (Image(uiImage: #imageLiteral(resourceName: "images-2")),"ST_Browny"),
19 | (Image(uiImage: #imageLiteral(resourceName: "images-7")),"Li_Disouza"),
20 | (Image(uiImage: #imageLiteral(resourceName: "images-5")),"Gm_Soni"),
21 | (Image(uiImage: #imageLiteral(resourceName: "images-4")),"Sv_Ganguly"),
22 | (Image(uiImage: #imageLiteral(resourceName: "images-5")),"KL_Rahul"),
23 | (Image(uiImage: #imageLiteral(resourceName: "images-3")),"ZR_Khan")
24 | ]
25 | }
26 |
--------------------------------------------------------------------------------
/Shared/Home/InstaView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // InstaView.swift
3 | // SMSwiftUI1.0
4 | //
5 | // Created by Apple on 10/07/20.
6 | //
7 |
8 | import SwiftUI
9 |
10 | struct InstaView: View {
11 |
12 | @State var previousIndex = 0
13 | @State var selectedIndex = 0
14 |
15 | var body: some View {
16 | TabView(selection: $selectedIndex) {
17 | ContentView()
18 | .tabItem {
19 | Image(systemName: selectedIndex == 0 ? "house.fill" : "house")
20 | Text("Home")
21 | }.tag(0)
22 |
23 | SearchBar()
24 | .tabItem {
25 | Image(systemName: "magnifyingglass")
26 | Text("Search")
27 | }.tag(1)
28 |
29 | ImagePickerControlView(selectedIndex: $selectedIndex, previousIndex: self.previousIndex)
30 | .tabItem {
31 | Image(systemName: selectedIndex == 2 ? "plus.square.fill" : "plus.square")
32 | Text("Add")
33 | .onTapGesture {
34 | self.previousIndex = selectedIndex
35 | }
36 | }.tag(2)
37 |
38 | Love()
39 | .tabItem {
40 | Image(systemName: selectedIndex == 3 ? "heart.fill" : "heart")
41 | Text("Love")
42 | }.tag(3)
43 |
44 | ProfileView()
45 | .tabItem {
46 | Image(systemName: selectedIndex == 4 ? "person.fill" : "person")
47 | Text("Person")
48 | }.tag(4)
49 | }
50 | .accentColor(Color(.label))
51 | .navigationViewStyle(StackNavigationViewStyle())
52 | }
53 | }
54 |
55 | struct PlusMenu: View {
56 | var body: some View {
57 | HStack(spacing: 50) {
58 | ZStack {
59 | Circle()
60 | .foregroundColor(Color.blue)
61 | .frame(width: 70, height: 70)
62 | Image(systemName: "camera")
63 | .resizable()
64 | .aspectRatio(contentMode: .fit)
65 | .padding(20)
66 | .frame(width: 70, height: 70)
67 | .foregroundColor(.white)
68 | }
69 | ZStack {
70 | Circle()
71 | .foregroundColor(Color.blue)
72 | .frame(width: 70, height: 70)
73 | Image(systemName: "photo")
74 | .resizable()
75 | .aspectRatio(contentMode: .fit)
76 | .padding(20)
77 | .frame(width: 70, height: 70)
78 | .foregroundColor(.white)
79 | }
80 | }
81 | }
82 | }
83 |
84 | struct InstaView_Previews: PreviewProvider {
85 | static var previews: some View {
86 | InstaView()
87 | .preferredColorScheme(.dark)
88 | }
89 | }
90 |
--------------------------------------------------------------------------------
/Shared/Home/Post.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Post.swift
3 | // SMSwiftUI1.0
4 | //
5 | // Created by Apple on 10/07/20.
6 | //
7 |
8 | import Foundation
9 |
10 | struct Post: Identifiable {
11 | var id: String = UUID().uuidString
12 | var imageName: String
13 | var profileImageName: String
14 | var profileName: String
15 | var time: String
16 | var like: Int
17 |
18 | }
19 |
20 | extension Post {
21 | static var posts = [
22 | Post(imageName: "images-2", profileImageName: "Profile", profileName: "Somendra Yadav", time: "Palasia chappan dukan,",like: 100),
23 | Post(imageName: "images-3", profileImageName: "Profile", profileName: "Somendra Yadav", time: "Bhawarkuan,",like: 10),
24 | Post(imageName: "images-4", profileImageName: "Profile", profileName: "Somendra Yadav", time: "Jisni bada ganapti,",like: 120),
25 | Post(imageName: "images-5", profileImageName: "Profile", profileName: "Somendra Yadav", time: "Air Port road,",like: 50),
26 | Post(imageName: "images-6", profileImageName: "Profile", profileName: "Somendra Yadav", time: "Vijay Nagar,",like: 130),
27 | Post(imageName: "images-7", profileImageName: "Profile", profileName: "Somendra Yadav", time: "Rajiv Gandhi,",like: 125),
28 | Post(imageName: "images", profileImageName: "Profile", profileName: "Somendra Yadav", time: "SVCE,",like: 155),
29 | Post(imageName: "images-2", profileImageName: "Profile", profileName: "Somendra Yadav", time: "IIT,",like: 135),
30 | Post(imageName: "images-3", profileImageName: "Profile", profileName: "Somendra Yadav", time: "IIM,",like: 355),
31 | Post(imageName: "images-4", profileImageName: "Profile", profileName: "Somendra Yadav", time: "Crecent Blue Water Park,",like: 536)
32 | ]
33 | }
34 |
35 |
--------------------------------------------------------------------------------
/Shared/Home/PostView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // PostView.swift
3 | // SMSwiftUI1.0
4 | //
5 | // Created by Apple on 10/07/20.
6 | //
7 |
8 | import SwiftUI
9 |
10 | struct PostView: View {
11 |
12 | @State var isLiked = false
13 | @State var isBookMark = false
14 | @State var post: Post
15 |
16 | func setHCSBStack() -> some View {
17 | HStack(spacing: 10) {
18 |
19 | Button(action: {
20 | isLiked.toggle()
21 | self.isLiked ? (self.post.like += 1) : (self.post.like -= 1)
22 | }, label: {
23 | if isLiked {
24 | Image(systemName: "heart.fill")
25 | .resizable()
26 | .frame(width: 25, height: 25)
27 | .foregroundColor(.red)
28 | .transition(.scale)
29 | } else {
30 | Image(systemName: "heart")
31 | .resizable()
32 | .frame(width: 25, height: 25)
33 | .transition(.scale)
34 | }
35 | })
36 | .padding(.horizontal,8)
37 |
38 | Button(action: {
39 |
40 | }, label: {
41 | Image(systemName: "message")
42 | .resizable()
43 | .frame(width: 25, height: 25)
44 | })
45 | .padding(.horizontal,8)
46 |
47 | Button(action: {
48 |
49 | }, label: {
50 | Image(systemName: "arrow.turn.up.right")
51 | .resizable()
52 | .scaledToFit()
53 | .frame(width: 25, height: 25)
54 | })
55 | .padding(.horizontal,8)
56 |
57 | Spacer()
58 |
59 | Button(action: {
60 | isBookMark.toggle()
61 | }, label: {
62 | if isBookMark {
63 | Image(systemName: "bookmark.fill")
64 | .resizable()
65 | .scaledToFit()
66 | .frame(width: 25, height: 25)
67 | .transition(.scale)
68 | } else {
69 | Image(systemName: "bookmark")
70 | .resizable()
71 | .scaledToFit()
72 | .frame(width: 25, height: 25)
73 | .transition(.scale)
74 | }
75 | })
76 | .padding(.horizontal,8)
77 | }
78 | }
79 |
80 | var body: some View {
81 | VStack(spacing: 10) {
82 | HStack(spacing: 20) {
83 | Image(post.profileImageName)
84 | .resizable()
85 | .frame(width: 60, height: 60)
86 | .clipShape(Circle())
87 | // .padding(.trailing, 20)
88 | ApnaVStack(spacing: 5,alignment: .leading) {
89 | Group {
90 | Text(post.profileName)
91 | .bold()
92 | Text("\(post.time) Indore")
93 | .font(.caption)
94 | .foregroundColor(.secondary)
95 | }
96 | }
97 | Spacer()
98 | }
99 | .padding(.horizontal)
100 |
101 | Image(post.imageName)
102 | .resizable()
103 | //.cornerRadius(10.0)
104 | .aspectRatio(1.3,contentMode: .fit)
105 |
106 | self.setHCSBStack()
107 | .foregroundColor(Color(.label))
108 | .padding(.horizontal)
109 | .animation(.default)
110 |
111 | HStack(spacing: 20) {
112 | ApnaVStack(spacing: 5,alignment: .leading) {
113 | Group {
114 | Text("\(post.like) Likes")
115 | .bold()
116 | }
117 | }
118 | Spacer()
119 | }
120 | .padding(.horizontal)
121 | }
122 | }
123 | }
124 |
125 | struct PostView_Previews: PreviewProvider {
126 | static var previews: some View {
127 | PostView(post: Post.posts.first!)
128 | }
129 | }
130 |
131 | struct ApnaVStack: View {
132 |
133 | let spacing: CGFloat
134 | let alignment: HorizontalAlignment
135 | let view: Content
136 |
137 | init(spacing: CGFloat = 8.0, alignment: HorizontalAlignment = .center,@ViewBuilder _ builder: ()->Content) {
138 | self.spacing = spacing
139 | self.alignment = alignment
140 | self.view = builder()
141 | }
142 |
143 | var body: some View {
144 | VStack(alignment: alignment,spacing: spacing) {
145 | view
146 | }
147 | }
148 | }
149 |
--------------------------------------------------------------------------------
/Shared/Home/StoryView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // StoryView.swift
3 | // SMSwiftUI1.0
4 | //
5 | // Created by Apple on 10/07/20.
6 | //
7 |
8 | import Foundation
9 | import SwiftUI
10 |
11 | struct StoryView: View {
12 | @State var isImagePickerPresented = false
13 | @State var pickedImage: Image? = nil
14 | @State private var inputImage: UIImage?
15 |
16 | let index: Int
17 |
18 | var body: some View {
19 | VStack {
20 | if index == 0 {
21 | Button(action: {
22 | isImagePickerPresented = true
23 | }, label: {
24 | (self.pickedImage ?? Image("Profile"))
25 | //Image.postImages[index].0
26 | .frame(width: 80, height: 80)
27 | .overlay(
28 | LinearGradient(gradient: Gradient(colors: [Color.red, Color.blue]), startPoint: .topLeading, endPoint: .bottomTrailing)
29 | .mask(
30 |
31 | Circle()
32 | .inset(by: 2.0)
33 | .stroke(Color.white, lineWidth: 4.0)
34 | .animation(.easeIn)
35 | )
36 | )
37 | .aspectRatio(contentMode: .fit)
38 | .clipShape(Circle())
39 | })
40 | .buttonStyle(AddButonStyle())
41 | } else {
42 | Image.postImages[index].0
43 | .frame(width: 80, height: 80)
44 | .overlay(
45 |
46 | LinearGradient(gradient: Gradient(colors: [Color.red, Color.blue]), startPoint: .topLeading, endPoint: .bottomTrailing)
47 | .mask(
48 |
49 | Circle()
50 | .inset(by: 2.0)
51 | .stroke(Color.white, lineWidth: 4.0)
52 | .animation(.easeIn)
53 | )
54 | )
55 | .aspectRatio(contentMode: .fit)
56 | .clipShape(Circle())
57 | }
58 |
59 | Text("\(Image.postImages[index].1)")
60 | .font(.caption)
61 | .lineLimit(1)
62 | .frame(width: 80)
63 | }
64 | .sheet(isPresented: $isImagePickerPresented, onDismiss: loadImage) {
65 | ImagePicker(image: self.$inputImage)
66 | }
67 | }
68 |
69 | func loadImage() {
70 | guard let inputImage = inputImage else { return }
71 | self.pickedImage = Image(uiImage: inputImage)
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/Shared/ImagePicker/ImagePicker.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ImagePicker.swift
3 | // SwiftUI2 (iOS)
4 | //
5 | // Created by Apple on 15/07/20.
6 | //
7 |
8 | import SwiftUI
9 | import UIKit
10 | import Foundation
11 |
12 | struct ImagePicker: UIViewControllerRepresentable {
13 |
14 | class Coordinator: NSObject, UINavigationControllerDelegate, UIImagePickerControllerDelegate {
15 | let parent: ImagePicker
16 |
17 | init(_ parent: ImagePicker) {
18 | self.parent = parent
19 | }
20 |
21 | func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey: Any]) {
22 | if let uiImage = info[.originalImage] as? UIImage {
23 | parent.image = uiImage
24 | }
25 |
26 | parent.presentationMode.wrappedValue.dismiss()
27 | }
28 | }
29 |
30 | @Environment(\.presentationMode) var presentationMode
31 | @Binding var image: UIImage?
32 |
33 | func makeUIViewController(context: UIViewControllerRepresentableContext) -> UIImagePickerController {
34 | let picker = UIImagePickerController()
35 | picker.delegate = context.coordinator
36 | return picker
37 | }
38 |
39 | func updateUIViewController(_ uiViewController: UIImagePickerController, context: UIViewControllerRepresentableContext) {
40 |
41 | }
42 |
43 | func makeCoordinator() -> Coordinator {
44 | Coordinator(self)
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/Shared/ImagePicker/ImagePickerControlView.swift:
--------------------------------------------------------------------------------
1 | //
2 | // ImagePickerControlView.swift
3 | // SwiftUI2 (iOS)
4 | //
5 | // Created by Apple on 15/07/20.
6 | //
7 |
8 | import SwiftUI
9 |
10 | struct ImagePickerControlView: View {
11 | @State private var showingImagePicker = false
12 | @State private var inputImage: UIImage?
13 | @Binding var selectedIndex: Int
14 | var previousIndex: Int
15 |
16 | func loadImage() {
17 | guard let inputImage = inputImage else { return }
18 | let image = Image(uiImage: inputImage)
19 | selectedIndex = previousIndex
20 | }
21 |
22 | var body: some View {
23 | NavigationView {
24 | GroupBox(label: Text("Tap to select image")) {
25 | Image(uiImage: inputImage ?? #imageLiteral(resourceName: "images-4"))
26 | .resizable()
27 | .onTapGesture {
28 | showingImagePicker = true
29 | }
30 | }
31 | .frame(width: 300, height: 300)
32 | }
33 | .navigationTitle("Gallery")
34 | .sheet(isPresented: $showingImagePicker, onDismiss: loadImage) {
35 | ImagePicker(image: self.$inputImage)
36 | }
37 | }
38 | }
39 |
40 | //struct ImagePickerControlView_Previews: PreviewProvider {
41 | // static var previews: some View {
42 | // ImagePickerControlView(isSelectedIndex: )
43 | // }
44 | //}
45 | //Image("images-5")
46 | // .resizable()
47 | // .aspectRatio(contentMode: .fit)
48 | // .mask(
49 | // Text("Tap to select image")
50 | // .font(Font.system(size: 30).weight(.heavy))
51 | // )
52 |
--------------------------------------------------------------------------------
/Shared/LoveTab/FollowerRequest.swift:
--------------------------------------------------------------------------------
1 | //
2 | // FollowerRequest.swift
3 | // SwiftUI2 (iOS)
4 | //
5 | // Created by Apple on 14/07/20.
6 | //
7 |
8 | import SwiftUI
9 |
10 | struct FollowerRequest: View {
11 |
12 | @State var love: LoveModel
13 |
14 | var body: some View {
15 | HStack(spacing: 10) {
16 | love.profilePic
17 | .resizable()
18 | .clipShape(Circle())
19 | .frame(width: 60, height: 60)
20 |
21 | ApnaVStack(spacing: 5, alignment: .leading) {
22 | Group {
23 | Text(love.name ?? "")
24 | .font(.headline)
25 | .foregroundColor(Color(.label))
26 | HStack {
27 | Text("Started following you.")
28 | .font(.subheadline)
29 | Text(love.time)
30 | .font(.subheadline)
31 | .foregroundColor(.secondary)
32 | }
33 | }
34 | }
35 | Spacer()
36 | Button(action: {
37 | if love.follow {
38 | self.love.follow = false
39 | } else {
40 | self.love.follow = true
41 | }
42 | }, label: {
43 | if self.love.follow {
44 | Text("Follow")
45 | .bold()
46 | .frame(width: 100, height: 30)
47 | .foregroundColor(Color(.label))
48 | .border(Color(.label), width: 2)
49 | .cornerRadius(5)
50 | } else {
51 | Text("Following")
52 | .bold()
53 | .frame(width: 100, height: 30)
54 | .foregroundColor(Color(.white))
55 | .background(Color(#colorLiteral(red: 0, green: 0.6334345341, blue: 1, alpha: 1)))
56 | .border(Color(#colorLiteral(red: 0, green: 0.6334345341, blue: 1, alpha: 1)), width: 2)
57 | .cornerRadius(5)
58 | }
59 |
60 | //.background(View)
61 | // Text("Follow")
62 | // .bold()
63 | // .frame(width: 70, height: 30)
64 | // .foregroundColor(Color(.label))
65 | // .border(Color.gray, width: 2)
66 | // .cornerRadius(5.0)
67 | })
68 | }
69 | .padding(.all,0)
70 | }
71 | }
72 |
73 | struct FollowerRequest_Previews: PreviewProvider {
74 | static var previews: some View {
75 | FollowerRequest(love: LoveModel(name: "Somendra Yadav", likedBy: "Stuart Broad", follow: true, profilePic: Image("Profile"),time: "5w"))
76 | }
77 | }
78 |
--------------------------------------------------------------------------------
/Shared/LoveTab/LoveTab.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Love.swift
3 | // SwiftUI2 (iOS)
4 | //
5 | // Created by Apple on 14/07/20.
6 | //
7 |
8 | import SwiftUI
9 |
10 | struct HeaderLove: View {
11 | @Binding var selectedSegment: Int
12 | var segementSection = ["Following", "You"]
13 |
14 | var body: some View {
15 | VStack {
16 | Picker("", selection: $selectedSegment,content: {
17 | ForEach(0.. UIImage? {
50 | do {
51 | let asset = AVURLAsset(url: path, options: nil)
52 | let imgGenerator = AVAssetImageGenerator(asset: asset)
53 | imgGenerator.appliesPreferredTrackTransform = true
54 | let cgImage = try imgGenerator.copyCGImage(at: CMTimeMake(value: 0, timescale: 1), actualTime: nil)
55 | let thumbnail = UIImage(cgImage: cgImage)
56 | return thumbnail
57 | } catch let error {
58 | print("*** Error generating thumbnail: \(error.localizedDescription)")
59 | return nil
60 | }
61 | }
62 | }
63 |
64 |
--------------------------------------------------------------------------------
/Shared/Search/SearchBar.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SearchBar.swift
3 | // SwiftUI2
4 | //
5 | // Created by Apple on 12/07/20.
6 | //
7 |
8 | import SwiftUI
9 | import AVFoundation
10 | import AVKit
11 |
12 | struct ImgItem:Identifiable {
13 | var id: UUID = UUID()
14 | var img: String
15 | }
16 |
17 | struct VideoView: UIViewRepresentable {
18 |
19 | var videoURL:URL
20 | var previewLength:Double?
21 |
22 | func makeUIView(context: Context) -> UIView {
23 | return PlayerView(frame: .zero, url: videoURL, previewLength: previewLength ?? 15)
24 | }
25 |
26 | func updateUIView(_ uiView: UIView, context: Context) {
27 |
28 | }
29 | }
30 |
31 | struct SearchBar: View {
32 |
33 | var items = [
34 | ImgItem(img:"images-2"),
35 | ImgItem(img:"images-3"),
36 | ImgItem(img:"images"),
37 | ImgItem(img:"images-5"),
38 | ImgItem(img:"images-6"),
39 | ImgItem(img:"images-7"),
40 | ImgItem(img:"images-2"),
41 | ImgItem(img:"images-3"),
42 | ImgItem(img:"images-4"),
43 | ImgItem(img:"images-5"),
44 | ImgItem(img:"images-6"),
45 | ImgItem(img:"images-7"),
46 | ImgItem(img:"images-2"),
47 | ImgItem(img:"images-3"),
48 | ImgItem(img:"images-4"),
49 | ImgItem(img:"images-5"),
50 | ImgItem(img:"images-6"),
51 | ImgItem(img:"images-7"),
52 | ImgItem(img:"images"),
53 | ImgItem(img:"images-2"),
54 | ImgItem(img:"images-7")
55 | ]
56 | @State private var searchText = ""
57 | @State private var showCancelButton: Bool = false
58 | let url = Bundle.main.url(forResource: "flower", withExtension: "mov")
59 | var body: some View {
60 |
61 | NavigationView {
62 | VStack {
63 | // Search view
64 | HStack {
65 | HStack {
66 | Image(systemName: "magnifyingglass")
67 |
68 | TextField("search", text: $searchText, onEditingChanged: { isEditing in
69 | self.showCancelButton = true
70 | }, onCommit: {
71 | print("onCommit")
72 | }).foregroundColor(.primary)
73 |
74 | Button(action: {
75 | self.searchText = ""
76 | }) {
77 | Image(systemName: "xmark.circle.fill").opacity(searchText == "" ? 0 : 1)
78 | }
79 | }
80 | .padding(EdgeInsets(top: 8, leading: 6, bottom: 8, trailing: 6))
81 | .foregroundColor(.secondary)
82 | .background(Color(.secondarySystemBackground))
83 | .cornerRadius(10.0)
84 |
85 | if showCancelButton {
86 | Button("Cancel") {
87 | UIApplication.shared.endEditing(true)
88 | // this must be placed before the other commands here
89 | self.searchText = ""
90 | self.showCancelButton = false
91 | }
92 | .foregroundColor(Color(.systemBlue))
93 | }
94 | }
95 | .padding(.horizontal)
96 | .navigationBarHidden(showCancelButton)
97 |
98 | //List {
99 | // // Filtered list of names
100 | // ForEach(array.filter{$0.hasPrefix(searchText) || searchText == ""}, id:\.self) {
101 | // searchText in Text(searchText)
102 | // }
103 | //}
104 | let gridItemLayout = [
105 | GridItem(spacing: 0),
106 | GridItem(spacing: 0),
107 | GridItem(spacing: 0)
108 | ]
109 |
110 | ScrollView(.vertical) {
111 | HStack(spacing: 0) {
112 | VStack(spacing: 0) {
113 | Image("images-2")
114 | .resizable()
115 | .aspectRatio(1,contentMode: .fill)
116 | Image("images-4")
117 | .resizable()
118 | .aspectRatio(1,contentMode: .fill)
119 | }
120 |
121 | HStack(spacing: 0) {
122 | VideoView(videoURL: url!,
123 | previewLength: 60)
124 |
125 | // VideoPlayer(player: AVPlayer(url: URL(string: "https://test-videos.co.uk/vids/bigbuckbunny/mp4/h264/1080/Big_Buck_Bunny_1080_10s_1MB.mp4")!))
126 | //// Image("Profile")
127 | // //.resizable()
128 | .frame(minWidth: 280, maxWidth: .infinity,minHeight: 100)
129 | .overlay(
130 | VStack(alignment: .leading,spacing: 5) {
131 | Text("Watch")
132 | .font(.subheadline)
133 | .foregroundColor(.white)
134 | Text("Videos You Might Like")
135 | .font(.title3)
136 | .bold()
137 | .foregroundColor(.white)
138 |
139 | }
140 | .padding(.leading, 10)
141 | .padding(.bottom, 10)
142 | ,alignment: .bottomLeading)
143 | }
144 | }
145 | .padding(.bottom,0)
146 |
147 | LazyVGrid(columns: gridItemLayout, alignment: .center,spacing: 0) {
148 | ForEach(0.. some View {
190 | content.gesture(gesture)
191 | }
192 | }
193 |
194 | extension View {
195 | func resignKeyboardOnDragGesture() -> some View {
196 | return modifier(ResignKeyboardOnDragGesture())
197 | }
198 | }
199 |
--------------------------------------------------------------------------------
/Shared/SwiftUI2App.swift:
--------------------------------------------------------------------------------
1 | //
2 | // SwiftUI2App.swift
3 | // Shared
4 | //
5 | // Created by Apple on 10/07/20.
6 | //
7 |
8 | import SwiftUI
9 |
10 | @main
11 | struct SwiftUI2App: App {
12 | var body: some Scene {
13 | WindowGroup {
14 | InstaView()
15 | }
16 | }
17 | }
18 |
19 | struct SplashScreen: View {
20 | @State private var isActive = false
21 | let insta = InstaView()
22 |
23 | var body: some View {
24 | NavigationView {
25 | VStack(alignment: .center) {
26 | Image("images-5")
27 | .resizable()
28 | .aspectRatio(contentMode: .fit)
29 | .mask(
30 | Text("Insta View")
31 | .font(Font.system(size: 180).weight(.heavy))
32 | )
33 | // NavigationLink(destination: insta,
34 | // isActive: $isActive,
35 | // label: { EmptyView() })
36 | }
37 | .background(Color(.black))
38 | .onAppear(perform: {
39 | self.gotoLoginScreen(time: 2.5)
40 | })
41 | .padding(.all, UIScreen.main.bounds.size.width/10)
42 | }
43 | .navigationViewStyle(StackNavigationViewStyle())
44 | }
45 |
46 | func gotoLoginScreen(time: Double) {
47 | DispatchQueue.main.asyncAfter(deadline: .now() + Double(time)) {
48 | self.isActive = true
49 | }
50 | }
51 | }
52 |
--------------------------------------------------------------------------------
/Shared/flower.mov:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/Shared/flower.mov
--------------------------------------------------------------------------------
/SwiftUI2.0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/SwiftUI2.0.png
--------------------------------------------------------------------------------
/SwiftUI2.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.app-sandbox
6 |
7 | com.apple.security.device.camera
8 |
9 | com.apple.security.network.client
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/SwiftUI2.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 50;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 18082DC324BCD4D9002DA47B /* TOOLBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18082DC224BCD4D9002DA47B /* TOOLBarView.swift */; };
11 | 18082DC524BCF542002DA47B /* SectionViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18082DC424BCF542002DA47B /* SectionViews.swift */; };
12 | 18082DCA24BD03D8002DA47B /* LoveTab.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18082DC924BD03D8002DA47B /* LoveTab.swift */; };
13 | 182E6E7B24C0D5520040FE7B /* ModelLove.swift in Sources */ = {isa = PBXBuildFile; fileRef = 182E6E7A24C0D5520040FE7B /* ModelLove.swift */; };
14 | 1832DE1E24BB3CBD009726CF /* AddStatusButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1832DE1D24BB3CBD009726CF /* AddStatusButton.swift */; };
15 | 1832DE1F24BB3CBD009726CF /* AddStatusButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1832DE1D24BB3CBD009726CF /* AddStatusButton.swift */; };
16 | 1832DE2124BB580C009726CF /* SearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1832DE2024BB580C009726CF /* SearchBar.swift */; };
17 | 1832DE2224BB580C009726CF /* SearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1832DE2024BB580C009726CF /* SearchBar.swift */; };
18 | 1876FFCA24B7B6CE00B08E2B /* Tests_iOS.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1876FFC924B7B6CE00B08E2B /* Tests_iOS.swift */; };
19 | 1876FFD524B7B6CE00B08E2B /* Tests_macOS.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1876FFD424B7B6CE00B08E2B /* Tests_macOS.swift */; };
20 | 1876FFD724B7B6CE00B08E2B /* SwiftUI2App.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1876FFAE24B7B6CE00B08E2B /* SwiftUI2App.swift */; };
21 | 1876FFD824B7B6CE00B08E2B /* SwiftUI2App.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1876FFAE24B7B6CE00B08E2B /* SwiftUI2App.swift */; };
22 | 1876FFDB24B7B6CE00B08E2B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1876FFB024B7B6CE00B08E2B /* Assets.xcassets */; };
23 | 1876FFDC24B7B6CE00B08E2B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 1876FFB024B7B6CE00B08E2B /* Assets.xcassets */; };
24 | 1876FFF124B7B73C00B08E2B /* InstaView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1876FFEB24B7B73C00B08E2B /* InstaView.swift */; };
25 | 1876FFF224B7B73C00B08E2B /* InstaView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1876FFEB24B7B73C00B08E2B /* InstaView.swift */; };
26 | 1876FFF524B7B73C00B08E2B /* StoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1876FFED24B7B73C00B08E2B /* StoryView.swift */; };
27 | 1876FFF624B7B73C00B08E2B /* StoryView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1876FFED24B7B73C00B08E2B /* StoryView.swift */; };
28 | 1876FFF724B7B73C00B08E2B /* Image+.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1876FFEE24B7B73C00B08E2B /* Image+.swift */; };
29 | 1876FFF824B7B73C00B08E2B /* Image+.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1876FFEE24B7B73C00B08E2B /* Image+.swift */; };
30 | 1876FFF924B7B73C00B08E2B /* Post.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1876FFEF24B7B73C00B08E2B /* Post.swift */; };
31 | 1876FFFA24B7B73C00B08E2B /* Post.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1876FFEF24B7B73C00B08E2B /* Post.swift */; };
32 | 1876FFFB24B7B73C00B08E2B /* PostView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1876FFF024B7B73C00B08E2B /* PostView.swift */; };
33 | 1876FFFC24B7B73C00B08E2B /* PostView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1876FFF024B7B73C00B08E2B /* PostView.swift */; };
34 | 1876FFFE24B7B7B300B08E2B /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1876FFFD24B7B7B300B08E2B /* ContentView.swift */; };
35 | 1876FFFF24B7B7B300B08E2B /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1876FFFD24B7B7B300B08E2B /* ContentView.swift */; };
36 | 1894CC9424C45D320096A132 /* MacOSSearch1.png in Resources */ = {isa = PBXBuildFile; fileRef = 1894CC7D24C45D320096A132 /* MacOSSearch1.png */; };
37 | 1894CC9524C45D320096A132 /* iPhoneHome.png in Resources */ = {isa = PBXBuildFile; fileRef = 1894CC7E24C45D320096A132 /* iPhoneHome.png */; };
38 | 1894CC9624C45D320096A132 /* MacOsProfile2.png in Resources */ = {isa = PBXBuildFile; fileRef = 1894CC7F24C45D320096A132 /* MacOsProfile2.png */; };
39 | 1894CC9724C45D320096A132 /* MacOSHome.png in Resources */ = {isa = PBXBuildFile; fileRef = 1894CC8024C45D320096A132 /* MacOSHome.png */; };
40 | 1894CC9824C45D320096A132 /* iPadAdd1.png in Resources */ = {isa = PBXBuildFile; fileRef = 1894CC8124C45D320096A132 /* iPadAdd1.png */; };
41 | 1894CC9924C45D320096A132 /* MacOSLove1.png in Resources */ = {isa = PBXBuildFile; fileRef = 1894CC8224C45D320096A132 /* MacOSLove1.png */; };
42 | 1894CC9A24C45D320096A132 /* iPhoneLove4.png in Resources */ = {isa = PBXBuildFile; fileRef = 1894CC8324C45D320096A132 /* iPhoneLove4.png */; };
43 | 1894CC9B24C45D320096A132 /* iPadLove1.png in Resources */ = {isa = PBXBuildFile; fileRef = 1894CC8424C45D320096A132 /* iPadLove1.png */; };
44 | 1894CC9C24C45D320096A132 /* WholeOS.png in Resources */ = {isa = PBXBuildFile; fileRef = 1894CC8524C45D320096A132 /* WholeOS.png */; };
45 | 1894CC9D24C45D320096A132 /* iPhoneLove3.png in Resources */ = {isa = PBXBuildFile; fileRef = 1894CC8624C45D320096A132 /* iPhoneLove3.png */; };
46 | 1894CC9E24C45D320096A132 /* iPadProfile2.png in Resources */ = {isa = PBXBuildFile; fileRef = 1894CC8724C45D320096A132 /* iPadProfile2.png */; };
47 | 1894CCA024C45D320096A132 /* iPhoneSearch3.png in Resources */ = {isa = PBXBuildFile; fileRef = 1894CC8924C45D320096A132 /* iPhoneSearch3.png */; };
48 | 1894CCA124C45D320096A132 /* iPhoneSearch2.png in Resources */ = {isa = PBXBuildFile; fileRef = 1894CC8A24C45D320096A132 /* iPhoneSearch2.png */; };
49 | 1894CCA224C45D320096A132 /* MacOsProfile.png in Resources */ = {isa = PBXBuildFile; fileRef = 1894CC8B24C45D320096A132 /* MacOsProfile.png */; };
50 | 1894CCA324C45D320096A132 /* HackingWithSwiftUI2.mov in Resources */ = {isa = PBXBuildFile; fileRef = 1894CC8C24C45D320096A132 /* HackingWithSwiftUI2.mov */; };
51 | 1894CCA424C45D320096A132 /* iPadSearch2.png in Resources */ = {isa = PBXBuildFile; fileRef = 1894CC8D24C45D320096A132 /* iPadSearch2.png */; };
52 | 1894CCA524C45D320096A132 /* iPadSearch1.png in Resources */ = {isa = PBXBuildFile; fileRef = 1894CC8E24C45D320096A132 /* iPadSearch1.png */; };
53 | 1894CCA624C45D320096A132 /* MacOsSearch.png in Resources */ = {isa = PBXBuildFile; fileRef = 1894CC8F24C45D320096A132 /* MacOsSearch.png */; };
54 | 1894CCA724C45D320096A132 /* iPhoneProfile.png in Resources */ = {isa = PBXBuildFile; fileRef = 1894CC9024C45D320096A132 /* iPhoneProfile.png */; };
55 | 1894CCA824C45D320096A132 /* iPhoneSearch.png in Resources */ = {isa = PBXBuildFile; fileRef = 1894CC9124C45D320096A132 /* iPhoneSearch.png */; };
56 | 1894CCA924C45D320096A132 /* iPadHome.png in Resources */ = {isa = PBXBuildFile; fileRef = 1894CC9224C45D320096A132 /* iPadHome.png */; };
57 | 1894CCAA24C45D320096A132 /* MacOsAdd.png in Resources */ = {isa = PBXBuildFile; fileRef = 1894CC9324C45D320096A132 /* MacOsAdd.png */; };
58 | 1894CCAC24C461440096A132 /* iPhoneAdd.png in Resources */ = {isa = PBXBuildFile; fileRef = 1894CCAB24C461440096A132 /* iPhoneAdd.png */; };
59 | 18988DE924BBA7BB00720D4B /* PlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18988DE824BBA7BB00720D4B /* PlayerView.swift */; };
60 | 18988DEA24BBA7BB00720D4B /* PlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18988DE824BBA7BB00720D4B /* PlayerView.swift */; };
61 | 18A5BEFB24C380AD0044559E /* flower.mov in Resources */ = {isa = PBXBuildFile; fileRef = 18A5BEFA24C380AD0044559E /* flower.mov */; };
62 | 18A5BEFC24C380AD0044559E /* flower.mov in Resources */ = {isa = PBXBuildFile; fileRef = 18A5BEFA24C380AD0044559E /* flower.mov */; };
63 | 18C593EE24BE358F004149D0 /* ImagePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18C593ED24BE358F004149D0 /* ImagePicker.swift */; };
64 | 18C593F224BE3769004149D0 /* ImagePickerControlView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18C593F124BE3769004149D0 /* ImagePickerControlView.swift */; };
65 | 18DF2CF824BC8C0100F3824A /* ProfileView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18DF2CF724BC8C0100F3824A /* ProfileView.swift */; };
66 | 18DF2CFA24BC8F8400F3824A /* ProfileDesc.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18DF2CF924BC8F8400F3824A /* ProfileDesc.swift */; };
67 | 18F3AD1324BDC78100C5FA48 /* FollowerRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18F3AD1224BDC78100C5FA48 /* FollowerRequest.swift */; };
68 | /* End PBXBuildFile section */
69 |
70 | /* Begin PBXContainerItemProxy section */
71 | 1876FFC624B7B6CE00B08E2B /* PBXContainerItemProxy */ = {
72 | isa = PBXContainerItemProxy;
73 | containerPortal = 1876FFA924B7B6CD00B08E2B /* Project object */;
74 | proxyType = 1;
75 | remoteGlobalIDString = 1876FFB424B7B6CE00B08E2B;
76 | remoteInfo = "SwiftUI2 (iOS)";
77 | };
78 | 1876FFD124B7B6CE00B08E2B /* PBXContainerItemProxy */ = {
79 | isa = PBXContainerItemProxy;
80 | containerPortal = 1876FFA924B7B6CD00B08E2B /* Project object */;
81 | proxyType = 1;
82 | remoteGlobalIDString = 1876FFBC24B7B6CE00B08E2B;
83 | remoteInfo = "SwiftUI2 (macOS)";
84 | };
85 | /* End PBXContainerItemProxy section */
86 |
87 | /* Begin PBXFileReference section */
88 | 18082DC224BCD4D9002DA47B /* TOOLBarView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TOOLBarView.swift; sourceTree = ""; };
89 | 18082DC424BCF542002DA47B /* SectionViews.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SectionViews.swift; sourceTree = ""; };
90 | 18082DC924BD03D8002DA47B /* LoveTab.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoveTab.swift; sourceTree = ""; };
91 | 182E6E7A24C0D5520040FE7B /* ModelLove.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModelLove.swift; sourceTree = ""; };
92 | 182E6E7C24C0E7B90040FE7B /* SwiftUI2.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = SwiftUI2.entitlements; sourceTree = ""; };
93 | 1832DE1D24BB3CBD009726CF /* AddStatusButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddStatusButton.swift; sourceTree = ""; };
94 | 1832DE2024BB580C009726CF /* SearchBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchBar.swift; sourceTree = ""; };
95 | 1876FFAE24B7B6CE00B08E2B /* SwiftUI2App.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwiftUI2App.swift; sourceTree = ""; };
96 | 1876FFB024B7B6CE00B08E2B /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
97 | 1876FFB524B7B6CE00B08E2B /* SwiftUI2.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SwiftUI2.app; sourceTree = BUILT_PRODUCTS_DIR; };
98 | 1876FFB824B7B6CE00B08E2B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
99 | 1876FFBD24B7B6CE00B08E2B /* SwiftUI2.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SwiftUI2.app; sourceTree = BUILT_PRODUCTS_DIR; };
100 | 1876FFBF24B7B6CE00B08E2B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
101 | 1876FFC024B7B6CE00B08E2B /* macOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = macOS.entitlements; sourceTree = ""; };
102 | 1876FFC524B7B6CE00B08E2B /* Tests iOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Tests iOS.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
103 | 1876FFC924B7B6CE00B08E2B /* Tests_iOS.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tests_iOS.swift; sourceTree = ""; };
104 | 1876FFCB24B7B6CE00B08E2B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
105 | 1876FFD024B7B6CE00B08E2B /* Tests macOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Tests macOS.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
106 | 1876FFD424B7B6CE00B08E2B /* Tests_macOS.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tests_macOS.swift; sourceTree = ""; };
107 | 1876FFD624B7B6CE00B08E2B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
108 | 1876FFEB24B7B73C00B08E2B /* InstaView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InstaView.swift; sourceTree = ""; };
109 | 1876FFED24B7B73C00B08E2B /* StoryView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StoryView.swift; sourceTree = ""; };
110 | 1876FFEE24B7B73C00B08E2B /* Image+.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Image+.swift"; sourceTree = ""; };
111 | 1876FFEF24B7B73C00B08E2B /* Post.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Post.swift; sourceTree = ""; };
112 | 1876FFF024B7B73C00B08E2B /* PostView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PostView.swift; sourceTree = ""; };
113 | 1876FFFD24B7B7B300B08E2B /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; };
114 | 1894CC7924C45CC60096A132 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; };
115 | 1894CC7D24C45D320096A132 /* MacOSSearch1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = MacOSSearch1.png; sourceTree = ""; };
116 | 1894CC7E24C45D320096A132 /* iPhoneHome.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = iPhoneHome.png; sourceTree = ""; };
117 | 1894CC7F24C45D320096A132 /* MacOsProfile2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = MacOsProfile2.png; sourceTree = ""; };
118 | 1894CC8024C45D320096A132 /* MacOSHome.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = MacOSHome.png; sourceTree = ""; };
119 | 1894CC8124C45D320096A132 /* iPadAdd1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = iPadAdd1.png; sourceTree = ""; };
120 | 1894CC8224C45D320096A132 /* MacOSLove1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = MacOSLove1.png; sourceTree = ""; };
121 | 1894CC8324C45D320096A132 /* iPhoneLove4.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = iPhoneLove4.png; sourceTree = ""; };
122 | 1894CC8424C45D320096A132 /* iPadLove1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = iPadLove1.png; sourceTree = ""; };
123 | 1894CC8524C45D320096A132 /* WholeOS.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = WholeOS.png; sourceTree = ""; };
124 | 1894CC8624C45D320096A132 /* iPhoneLove3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = iPhoneLove3.png; sourceTree = ""; };
125 | 1894CC8724C45D320096A132 /* iPadProfile2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = iPadProfile2.png; sourceTree = ""; };
126 | 1894CC8924C45D320096A132 /* iPhoneSearch3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = iPhoneSearch3.png; sourceTree = ""; };
127 | 1894CC8A24C45D320096A132 /* iPhoneSearch2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = iPhoneSearch2.png; sourceTree = ""; };
128 | 1894CC8B24C45D320096A132 /* MacOsProfile.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = MacOsProfile.png; sourceTree = ""; };
129 | 1894CC8C24C45D320096A132 /* HackingWithSwiftUI2.mov */ = {isa = PBXFileReference; lastKnownFileType = video.quicktime; path = HackingWithSwiftUI2.mov; sourceTree = ""; };
130 | 1894CC8D24C45D320096A132 /* iPadSearch2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = iPadSearch2.png; sourceTree = ""; };
131 | 1894CC8E24C45D320096A132 /* iPadSearch1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = iPadSearch1.png; sourceTree = ""; };
132 | 1894CC8F24C45D320096A132 /* MacOsSearch.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = MacOsSearch.png; sourceTree = ""; };
133 | 1894CC9024C45D320096A132 /* iPhoneProfile.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = iPhoneProfile.png; sourceTree = ""; };
134 | 1894CC9124C45D320096A132 /* iPhoneSearch.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = iPhoneSearch.png; sourceTree = ""; };
135 | 1894CC9224C45D320096A132 /* iPadHome.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = iPadHome.png; sourceTree = ""; };
136 | 1894CC9324C45D320096A132 /* MacOsAdd.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = MacOsAdd.png; sourceTree = ""; };
137 | 1894CCAB24C461440096A132 /* iPhoneAdd.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = iPhoneAdd.png; sourceTree = ""; };
138 | 18988DE824BBA7BB00720D4B /* PlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerView.swift; sourceTree = ""; };
139 | 18A5BEFA24C380AD0044559E /* flower.mov */ = {isa = PBXFileReference; lastKnownFileType = video.quicktime; path = flower.mov; sourceTree = ""; };
140 | 18C593ED24BE358F004149D0 /* ImagePicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImagePicker.swift; sourceTree = ""; };
141 | 18C593F124BE3769004149D0 /* ImagePickerControlView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImagePickerControlView.swift; sourceTree = ""; };
142 | 18DF2CF724BC8C0100F3824A /* ProfileView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileView.swift; sourceTree = ""; };
143 | 18DF2CF924BC8F8400F3824A /* ProfileDesc.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProfileDesc.swift; sourceTree = ""; };
144 | 18F3AD1224BDC78100C5FA48 /* FollowerRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FollowerRequest.swift; sourceTree = ""; };
145 | /* End PBXFileReference section */
146 |
147 | /* Begin PBXFrameworksBuildPhase section */
148 | 1876FFB224B7B6CE00B08E2B /* Frameworks */ = {
149 | isa = PBXFrameworksBuildPhase;
150 | buildActionMask = 2147483647;
151 | files = (
152 | );
153 | runOnlyForDeploymentPostprocessing = 0;
154 | };
155 | 1876FFBA24B7B6CE00B08E2B /* Frameworks */ = {
156 | isa = PBXFrameworksBuildPhase;
157 | buildActionMask = 2147483647;
158 | files = (
159 | );
160 | runOnlyForDeploymentPostprocessing = 0;
161 | };
162 | 1876FFC224B7B6CE00B08E2B /* Frameworks */ = {
163 | isa = PBXFrameworksBuildPhase;
164 | buildActionMask = 2147483647;
165 | files = (
166 | );
167 | runOnlyForDeploymentPostprocessing = 0;
168 | };
169 | 1876FFCD24B7B6CE00B08E2B /* Frameworks */ = {
170 | isa = PBXFrameworksBuildPhase;
171 | buildActionMask = 2147483647;
172 | files = (
173 | );
174 | runOnlyForDeploymentPostprocessing = 0;
175 | };
176 | /* End PBXFrameworksBuildPhase section */
177 |
178 | /* Begin PBXGroup section */
179 | 18082DC824BD033F002DA47B /* LoveTab */ = {
180 | isa = PBXGroup;
181 | children = (
182 | 18082DC924BD03D8002DA47B /* LoveTab.swift */,
183 | 18F3AD1224BDC78100C5FA48 /* FollowerRequest.swift */,
184 | 182E6E7A24C0D5520040FE7B /* ModelLove.swift */,
185 | );
186 | path = LoveTab;
187 | sourceTree = "";
188 | };
189 | 1876FFA824B7B6CD00B08E2B = {
190 | isa = PBXGroup;
191 | children = (
192 | 1894CC7924C45CC60096A132 /* README.md */,
193 | 182E6E7C24C0E7B90040FE7B /* SwiftUI2.entitlements */,
194 | 1876FFAD24B7B6CE00B08E2B /* Shared */,
195 | 1876FFB724B7B6CE00B08E2B /* iOS */,
196 | 1876FFBE24B7B6CE00B08E2B /* macOS */,
197 | 1876FFC824B7B6CE00B08E2B /* Tests iOS */,
198 | 1876FFD324B7B6CE00B08E2B /* Tests macOS */,
199 | 1876FFB624B7B6CE00B08E2B /* Products */,
200 | );
201 | sourceTree = "";
202 | };
203 | 1876FFAD24B7B6CE00B08E2B /* Shared */ = {
204 | isa = PBXGroup;
205 | children = (
206 | 1894CC7C24C45D320096A132 /* images */,
207 | 18A5BEFA24C380AD0044559E /* flower.mov */,
208 | 18C593EC24BE3577004149D0 /* ImagePicker */,
209 | 18082DC824BD033F002DA47B /* LoveTab */,
210 | 18DF2CF624BC8BE200F3824A /* Profile */,
211 | 18DF2CF524BC8B4100F3824A /* Extension */,
212 | 18DF2CF424BC8ADC00F3824A /* Search */,
213 | 18DF2CF324BC8AC500F3824A /* Home */,
214 | 1876FFAE24B7B6CE00B08E2B /* SwiftUI2App.swift */,
215 | 1876FFB024B7B6CE00B08E2B /* Assets.xcassets */,
216 | 1876FFFD24B7B7B300B08E2B /* ContentView.swift */,
217 | );
218 | path = Shared;
219 | sourceTree = "";
220 | };
221 | 1876FFB624B7B6CE00B08E2B /* Products */ = {
222 | isa = PBXGroup;
223 | children = (
224 | 1876FFB524B7B6CE00B08E2B /* SwiftUI2.app */,
225 | 1876FFBD24B7B6CE00B08E2B /* SwiftUI2.app */,
226 | 1876FFC524B7B6CE00B08E2B /* Tests iOS.xctest */,
227 | 1876FFD024B7B6CE00B08E2B /* Tests macOS.xctest */,
228 | );
229 | name = Products;
230 | sourceTree = "";
231 | };
232 | 1876FFB724B7B6CE00B08E2B /* iOS */ = {
233 | isa = PBXGroup;
234 | children = (
235 | 1876FFB824B7B6CE00B08E2B /* Info.plist */,
236 | );
237 | path = iOS;
238 | sourceTree = "";
239 | };
240 | 1876FFBE24B7B6CE00B08E2B /* macOS */ = {
241 | isa = PBXGroup;
242 | children = (
243 | 1876FFBF24B7B6CE00B08E2B /* Info.plist */,
244 | 1876FFC024B7B6CE00B08E2B /* macOS.entitlements */,
245 | );
246 | path = macOS;
247 | sourceTree = "";
248 | };
249 | 1876FFC824B7B6CE00B08E2B /* Tests iOS */ = {
250 | isa = PBXGroup;
251 | children = (
252 | 1876FFC924B7B6CE00B08E2B /* Tests_iOS.swift */,
253 | 1876FFCB24B7B6CE00B08E2B /* Info.plist */,
254 | );
255 | path = "Tests iOS";
256 | sourceTree = "";
257 | };
258 | 1876FFD324B7B6CE00B08E2B /* Tests macOS */ = {
259 | isa = PBXGroup;
260 | children = (
261 | 1876FFD424B7B6CE00B08E2B /* Tests_macOS.swift */,
262 | 1876FFD624B7B6CE00B08E2B /* Info.plist */,
263 | );
264 | path = "Tests macOS";
265 | sourceTree = "";
266 | };
267 | 1894CC7C24C45D320096A132 /* images */ = {
268 | isa = PBXGroup;
269 | children = (
270 | 1894CCAB24C461440096A132 /* iPhoneAdd.png */,
271 | 1894CC7D24C45D320096A132 /* MacOSSearch1.png */,
272 | 1894CC7E24C45D320096A132 /* iPhoneHome.png */,
273 | 1894CC7F24C45D320096A132 /* MacOsProfile2.png */,
274 | 1894CC8024C45D320096A132 /* MacOSHome.png */,
275 | 1894CC8124C45D320096A132 /* iPadAdd1.png */,
276 | 1894CC8224C45D320096A132 /* MacOSLove1.png */,
277 | 1894CC8324C45D320096A132 /* iPhoneLove4.png */,
278 | 1894CC8424C45D320096A132 /* iPadLove1.png */,
279 | 1894CC8524C45D320096A132 /* WholeOS.png */,
280 | 1894CC8624C45D320096A132 /* iPhoneLove3.png */,
281 | 1894CC8724C45D320096A132 /* iPadProfile2.png */,
282 | 1894CC8924C45D320096A132 /* iPhoneSearch3.png */,
283 | 1894CC8A24C45D320096A132 /* iPhoneSearch2.png */,
284 | 1894CC8B24C45D320096A132 /* MacOsProfile.png */,
285 | 1894CC8C24C45D320096A132 /* HackingWithSwiftUI2.mov */,
286 | 1894CC8D24C45D320096A132 /* iPadSearch2.png */,
287 | 1894CC8E24C45D320096A132 /* iPadSearch1.png */,
288 | 1894CC8F24C45D320096A132 /* MacOsSearch.png */,
289 | 1894CC9024C45D320096A132 /* iPhoneProfile.png */,
290 | 1894CC9124C45D320096A132 /* iPhoneSearch.png */,
291 | 1894CC9224C45D320096A132 /* iPadHome.png */,
292 | 1894CC9324C45D320096A132 /* MacOsAdd.png */,
293 | );
294 | path = images;
295 | sourceTree = SOURCE_ROOT;
296 | };
297 | 18C593EC24BE3577004149D0 /* ImagePicker */ = {
298 | isa = PBXGroup;
299 | children = (
300 | 18C593ED24BE358F004149D0 /* ImagePicker.swift */,
301 | 18C593F124BE3769004149D0 /* ImagePickerControlView.swift */,
302 | );
303 | path = ImagePicker;
304 | sourceTree = "";
305 | };
306 | 18DF2CF324BC8AC500F3824A /* Home */ = {
307 | isa = PBXGroup;
308 | children = (
309 | 1876FFEB24B7B73C00B08E2B /* InstaView.swift */,
310 | 1876FFEF24B7B73C00B08E2B /* Post.swift */,
311 | 1876FFF024B7B73C00B08E2B /* PostView.swift */,
312 | 1876FFED24B7B73C00B08E2B /* StoryView.swift */,
313 | );
314 | path = Home;
315 | sourceTree = "";
316 | };
317 | 18DF2CF424BC8ADC00F3824A /* Search */ = {
318 | isa = PBXGroup;
319 | children = (
320 | 1832DE2024BB580C009726CF /* SearchBar.swift */,
321 | 18988DE824BBA7BB00720D4B /* PlayerView.swift */,
322 | );
323 | path = Search;
324 | sourceTree = "";
325 | };
326 | 18DF2CF524BC8B4100F3824A /* Extension */ = {
327 | isa = PBXGroup;
328 | children = (
329 | 1832DE1D24BB3CBD009726CF /* AddStatusButton.swift */,
330 | 1876FFEE24B7B73C00B08E2B /* Image+.swift */,
331 | );
332 | path = Extension;
333 | sourceTree = "";
334 | };
335 | 18DF2CF624BC8BE200F3824A /* Profile */ = {
336 | isa = PBXGroup;
337 | children = (
338 | 18DF2CF724BC8C0100F3824A /* ProfileView.swift */,
339 | 18DF2CF924BC8F8400F3824A /* ProfileDesc.swift */,
340 | 18082DC224BCD4D9002DA47B /* TOOLBarView.swift */,
341 | 18082DC424BCF542002DA47B /* SectionViews.swift */,
342 | );
343 | path = Profile;
344 | sourceTree = "";
345 | };
346 | /* End PBXGroup section */
347 |
348 | /* Begin PBXNativeTarget section */
349 | 1876FFB424B7B6CE00B08E2B /* SwiftUI2 (iOS) */ = {
350 | isa = PBXNativeTarget;
351 | buildConfigurationList = 1876FFDF24B7B6CE00B08E2B /* Build configuration list for PBXNativeTarget "SwiftUI2 (iOS)" */;
352 | buildPhases = (
353 | 1876FFB124B7B6CE00B08E2B /* Sources */,
354 | 1876FFB224B7B6CE00B08E2B /* Frameworks */,
355 | 1876FFB324B7B6CE00B08E2B /* Resources */,
356 | );
357 | buildRules = (
358 | );
359 | dependencies = (
360 | );
361 | name = "SwiftUI2 (iOS)";
362 | productName = "SwiftUI2 (iOS)";
363 | productReference = 1876FFB524B7B6CE00B08E2B /* SwiftUI2.app */;
364 | productType = "com.apple.product-type.application";
365 | };
366 | 1876FFBC24B7B6CE00B08E2B /* SwiftUI2 (macOS) */ = {
367 | isa = PBXNativeTarget;
368 | buildConfigurationList = 1876FFE224B7B6CE00B08E2B /* Build configuration list for PBXNativeTarget "SwiftUI2 (macOS)" */;
369 | buildPhases = (
370 | 1876FFB924B7B6CE00B08E2B /* Sources */,
371 | 1876FFBA24B7B6CE00B08E2B /* Frameworks */,
372 | 1876FFBB24B7B6CE00B08E2B /* Resources */,
373 | );
374 | buildRules = (
375 | );
376 | dependencies = (
377 | );
378 | name = "SwiftUI2 (macOS)";
379 | productName = "SwiftUI2 (macOS)";
380 | productReference = 1876FFBD24B7B6CE00B08E2B /* SwiftUI2.app */;
381 | productType = "com.apple.product-type.application";
382 | };
383 | 1876FFC424B7B6CE00B08E2B /* Tests iOS */ = {
384 | isa = PBXNativeTarget;
385 | buildConfigurationList = 1876FFE524B7B6CE00B08E2B /* Build configuration list for PBXNativeTarget "Tests iOS" */;
386 | buildPhases = (
387 | 1876FFC124B7B6CE00B08E2B /* Sources */,
388 | 1876FFC224B7B6CE00B08E2B /* Frameworks */,
389 | 1876FFC324B7B6CE00B08E2B /* Resources */,
390 | );
391 | buildRules = (
392 | );
393 | dependencies = (
394 | 1876FFC724B7B6CE00B08E2B /* PBXTargetDependency */,
395 | );
396 | name = "Tests iOS";
397 | productName = "Tests iOS";
398 | productReference = 1876FFC524B7B6CE00B08E2B /* Tests iOS.xctest */;
399 | productType = "com.apple.product-type.bundle.ui-testing";
400 | };
401 | 1876FFCF24B7B6CE00B08E2B /* Tests macOS */ = {
402 | isa = PBXNativeTarget;
403 | buildConfigurationList = 1876FFE824B7B6CE00B08E2B /* Build configuration list for PBXNativeTarget "Tests macOS" */;
404 | buildPhases = (
405 | 1876FFCC24B7B6CE00B08E2B /* Sources */,
406 | 1876FFCD24B7B6CE00B08E2B /* Frameworks */,
407 | 1876FFCE24B7B6CE00B08E2B /* Resources */,
408 | );
409 | buildRules = (
410 | );
411 | dependencies = (
412 | 1876FFD224B7B6CE00B08E2B /* PBXTargetDependency */,
413 | );
414 | name = "Tests macOS";
415 | productName = "Tests macOS";
416 | productReference = 1876FFD024B7B6CE00B08E2B /* Tests macOS.xctest */;
417 | productType = "com.apple.product-type.bundle.ui-testing";
418 | };
419 | /* End PBXNativeTarget section */
420 |
421 | /* Begin PBXProject section */
422 | 1876FFA924B7B6CD00B08E2B /* Project object */ = {
423 | isa = PBXProject;
424 | attributes = {
425 | LastSwiftUpdateCheck = 1200;
426 | LastUpgradeCheck = 1200;
427 | TargetAttributes = {
428 | 1876FFB424B7B6CE00B08E2B = {
429 | CreatedOnToolsVersion = 12.0;
430 | };
431 | 1876FFBC24B7B6CE00B08E2B = {
432 | CreatedOnToolsVersion = 12.0;
433 | };
434 | 1876FFC424B7B6CE00B08E2B = {
435 | CreatedOnToolsVersion = 12.0;
436 | TestTargetID = 1876FFB424B7B6CE00B08E2B;
437 | };
438 | 1876FFCF24B7B6CE00B08E2B = {
439 | CreatedOnToolsVersion = 12.0;
440 | TestTargetID = 1876FFBC24B7B6CE00B08E2B;
441 | };
442 | };
443 | };
444 | buildConfigurationList = 1876FFAC24B7B6CD00B08E2B /* Build configuration list for PBXProject "SwiftUI2" */;
445 | compatibilityVersion = "Xcode 9.3";
446 | developmentRegion = en;
447 | hasScannedForEncodings = 0;
448 | knownRegions = (
449 | en,
450 | Base,
451 | );
452 | mainGroup = 1876FFA824B7B6CD00B08E2B;
453 | productRefGroup = 1876FFB624B7B6CE00B08E2B /* Products */;
454 | projectDirPath = "";
455 | projectRoot = "";
456 | targets = (
457 | 1876FFB424B7B6CE00B08E2B /* SwiftUI2 (iOS) */,
458 | 1876FFBC24B7B6CE00B08E2B /* SwiftUI2 (macOS) */,
459 | 1876FFC424B7B6CE00B08E2B /* Tests iOS */,
460 | 1876FFCF24B7B6CE00B08E2B /* Tests macOS */,
461 | );
462 | };
463 | /* End PBXProject section */
464 |
465 | /* Begin PBXResourcesBuildPhase section */
466 | 1876FFB324B7B6CE00B08E2B /* Resources */ = {
467 | isa = PBXResourcesBuildPhase;
468 | buildActionMask = 2147483647;
469 | files = (
470 | 1894CC9E24C45D320096A132 /* iPadProfile2.png in Resources */,
471 | 1894CCA224C45D320096A132 /* MacOsProfile.png in Resources */,
472 | 1894CCA824C45D320096A132 /* iPhoneSearch.png in Resources */,
473 | 1876FFDB24B7B6CE00B08E2B /* Assets.xcassets in Resources */,
474 | 1894CC9B24C45D320096A132 /* iPadLove1.png in Resources */,
475 | 1894CC9D24C45D320096A132 /* iPhoneLove3.png in Resources */,
476 | 1894CCA424C45D320096A132 /* iPadSearch2.png in Resources */,
477 | 1894CC9524C45D320096A132 /* iPhoneHome.png in Resources */,
478 | 1894CC9724C45D320096A132 /* MacOSHome.png in Resources */,
479 | 1894CCA024C45D320096A132 /* iPhoneSearch3.png in Resources */,
480 | 1894CC9924C45D320096A132 /* MacOSLove1.png in Resources */,
481 | 1894CC9824C45D320096A132 /* iPadAdd1.png in Resources */,
482 | 1894CCA324C45D320096A132 /* HackingWithSwiftUI2.mov in Resources */,
483 | 1894CC9A24C45D320096A132 /* iPhoneLove4.png in Resources */,
484 | 1894CCA724C45D320096A132 /* iPhoneProfile.png in Resources */,
485 | 18A5BEFB24C380AD0044559E /* flower.mov in Resources */,
486 | 1894CC9C24C45D320096A132 /* WholeOS.png in Resources */,
487 | 1894CC9424C45D320096A132 /* MacOSSearch1.png in Resources */,
488 | 1894CCA624C45D320096A132 /* MacOsSearch.png in Resources */,
489 | 1894CCAA24C45D320096A132 /* MacOsAdd.png in Resources */,
490 | 1894CCAC24C461440096A132 /* iPhoneAdd.png in Resources */,
491 | 1894CC9624C45D320096A132 /* MacOsProfile2.png in Resources */,
492 | 1894CCA124C45D320096A132 /* iPhoneSearch2.png in Resources */,
493 | 1894CCA924C45D320096A132 /* iPadHome.png in Resources */,
494 | 1894CCA524C45D320096A132 /* iPadSearch1.png in Resources */,
495 | );
496 | runOnlyForDeploymentPostprocessing = 0;
497 | };
498 | 1876FFBB24B7B6CE00B08E2B /* Resources */ = {
499 | isa = PBXResourcesBuildPhase;
500 | buildActionMask = 2147483647;
501 | files = (
502 | 1876FFDC24B7B6CE00B08E2B /* Assets.xcassets in Resources */,
503 | 18A5BEFC24C380AD0044559E /* flower.mov in Resources */,
504 | );
505 | runOnlyForDeploymentPostprocessing = 0;
506 | };
507 | 1876FFC324B7B6CE00B08E2B /* Resources */ = {
508 | isa = PBXResourcesBuildPhase;
509 | buildActionMask = 2147483647;
510 | files = (
511 | );
512 | runOnlyForDeploymentPostprocessing = 0;
513 | };
514 | 1876FFCE24B7B6CE00B08E2B /* Resources */ = {
515 | isa = PBXResourcesBuildPhase;
516 | buildActionMask = 2147483647;
517 | files = (
518 | );
519 | runOnlyForDeploymentPostprocessing = 0;
520 | };
521 | /* End PBXResourcesBuildPhase section */
522 |
523 | /* Begin PBXSourcesBuildPhase section */
524 | 1876FFB124B7B6CE00B08E2B /* Sources */ = {
525 | isa = PBXSourcesBuildPhase;
526 | buildActionMask = 2147483647;
527 | files = (
528 | 18082DCA24BD03D8002DA47B /* LoveTab.swift in Sources */,
529 | 1876FFFB24B7B73C00B08E2B /* PostView.swift in Sources */,
530 | 18DF2CFA24BC8F8400F3824A /* ProfileDesc.swift in Sources */,
531 | 18C593EE24BE358F004149D0 /* ImagePicker.swift in Sources */,
532 | 18F3AD1324BDC78100C5FA48 /* FollowerRequest.swift in Sources */,
533 | 1832DE1E24BB3CBD009726CF /* AddStatusButton.swift in Sources */,
534 | 1876FFF124B7B73C00B08E2B /* InstaView.swift in Sources */,
535 | 18C593F224BE3769004149D0 /* ImagePickerControlView.swift in Sources */,
536 | 18988DE924BBA7BB00720D4B /* PlayerView.swift in Sources */,
537 | 182E6E7B24C0D5520040FE7B /* ModelLove.swift in Sources */,
538 | 18082DC324BCD4D9002DA47B /* TOOLBarView.swift in Sources */,
539 | 18082DC524BCF542002DA47B /* SectionViews.swift in Sources */,
540 | 1876FFFE24B7B7B300B08E2B /* ContentView.swift in Sources */,
541 | 1876FFD724B7B6CE00B08E2B /* SwiftUI2App.swift in Sources */,
542 | 1832DE2124BB580C009726CF /* SearchBar.swift in Sources */,
543 | 1876FFF724B7B73C00B08E2B /* Image+.swift in Sources */,
544 | 1876FFF924B7B73C00B08E2B /* Post.swift in Sources */,
545 | 18DF2CF824BC8C0100F3824A /* ProfileView.swift in Sources */,
546 | 1876FFF524B7B73C00B08E2B /* StoryView.swift in Sources */,
547 | );
548 | runOnlyForDeploymentPostprocessing = 0;
549 | };
550 | 1876FFB924B7B6CE00B08E2B /* Sources */ = {
551 | isa = PBXSourcesBuildPhase;
552 | buildActionMask = 2147483647;
553 | files = (
554 | 1876FFFC24B7B73C00B08E2B /* PostView.swift in Sources */,
555 | 1832DE1F24BB3CBD009726CF /* AddStatusButton.swift in Sources */,
556 | 1876FFF224B7B73C00B08E2B /* InstaView.swift in Sources */,
557 | 18988DEA24BBA7BB00720D4B /* PlayerView.swift in Sources */,
558 | 1876FFFF24B7B7B300B08E2B /* ContentView.swift in Sources */,
559 | 1876FFD824B7B6CE00B08E2B /* SwiftUI2App.swift in Sources */,
560 | 1832DE2224BB580C009726CF /* SearchBar.swift in Sources */,
561 | 1876FFF824B7B73C00B08E2B /* Image+.swift in Sources */,
562 | 1876FFFA24B7B73C00B08E2B /* Post.swift in Sources */,
563 | 1876FFF624B7B73C00B08E2B /* StoryView.swift in Sources */,
564 | );
565 | runOnlyForDeploymentPostprocessing = 0;
566 | };
567 | 1876FFC124B7B6CE00B08E2B /* Sources */ = {
568 | isa = PBXSourcesBuildPhase;
569 | buildActionMask = 2147483647;
570 | files = (
571 | 1876FFCA24B7B6CE00B08E2B /* Tests_iOS.swift in Sources */,
572 | );
573 | runOnlyForDeploymentPostprocessing = 0;
574 | };
575 | 1876FFCC24B7B6CE00B08E2B /* Sources */ = {
576 | isa = PBXSourcesBuildPhase;
577 | buildActionMask = 2147483647;
578 | files = (
579 | 1876FFD524B7B6CE00B08E2B /* Tests_macOS.swift in Sources */,
580 | );
581 | runOnlyForDeploymentPostprocessing = 0;
582 | };
583 | /* End PBXSourcesBuildPhase section */
584 |
585 | /* Begin PBXTargetDependency section */
586 | 1876FFC724B7B6CE00B08E2B /* PBXTargetDependency */ = {
587 | isa = PBXTargetDependency;
588 | target = 1876FFB424B7B6CE00B08E2B /* SwiftUI2 (iOS) */;
589 | targetProxy = 1876FFC624B7B6CE00B08E2B /* PBXContainerItemProxy */;
590 | };
591 | 1876FFD224B7B6CE00B08E2B /* PBXTargetDependency */ = {
592 | isa = PBXTargetDependency;
593 | target = 1876FFBC24B7B6CE00B08E2B /* SwiftUI2 (macOS) */;
594 | targetProxy = 1876FFD124B7B6CE00B08E2B /* PBXContainerItemProxy */;
595 | };
596 | /* End PBXTargetDependency section */
597 |
598 | /* Begin XCBuildConfiguration section */
599 | 1876FFDD24B7B6CE00B08E2B /* Debug */ = {
600 | isa = XCBuildConfiguration;
601 | buildSettings = {
602 | ALWAYS_SEARCH_USER_PATHS = NO;
603 | CLANG_ANALYZER_NONNULL = YES;
604 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
605 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
606 | CLANG_CXX_LIBRARY = "libc++";
607 | CLANG_ENABLE_MODULES = YES;
608 | CLANG_ENABLE_OBJC_ARC = YES;
609 | CLANG_ENABLE_OBJC_WEAK = YES;
610 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
611 | CLANG_WARN_BOOL_CONVERSION = YES;
612 | CLANG_WARN_COMMA = YES;
613 | CLANG_WARN_CONSTANT_CONVERSION = YES;
614 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
615 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
616 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
617 | CLANG_WARN_EMPTY_BODY = YES;
618 | CLANG_WARN_ENUM_CONVERSION = YES;
619 | CLANG_WARN_INFINITE_RECURSION = YES;
620 | CLANG_WARN_INT_CONVERSION = YES;
621 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
622 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
623 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
624 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
625 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
626 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
627 | CLANG_WARN_STRICT_PROTOTYPES = YES;
628 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
629 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
630 | CLANG_WARN_UNREACHABLE_CODE = YES;
631 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
632 | COPY_PHASE_STRIP = NO;
633 | DEBUG_INFORMATION_FORMAT = dwarf;
634 | ENABLE_STRICT_OBJC_MSGSEND = YES;
635 | ENABLE_TESTABILITY = YES;
636 | GCC_C_LANGUAGE_STANDARD = gnu11;
637 | GCC_DYNAMIC_NO_PIC = NO;
638 | GCC_NO_COMMON_BLOCKS = YES;
639 | GCC_OPTIMIZATION_LEVEL = 0;
640 | GCC_PREPROCESSOR_DEFINITIONS = (
641 | "DEBUG=1",
642 | "$(inherited)",
643 | );
644 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
645 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
646 | GCC_WARN_UNDECLARED_SELECTOR = YES;
647 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
648 | GCC_WARN_UNUSED_FUNCTION = YES;
649 | GCC_WARN_UNUSED_VARIABLE = YES;
650 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
651 | MTL_FAST_MATH = YES;
652 | ONLY_ACTIVE_ARCH = YES;
653 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
654 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
655 | };
656 | name = Debug;
657 | };
658 | 1876FFDE24B7B6CE00B08E2B /* Release */ = {
659 | isa = XCBuildConfiguration;
660 | buildSettings = {
661 | ALWAYS_SEARCH_USER_PATHS = NO;
662 | CLANG_ANALYZER_NONNULL = YES;
663 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
664 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
665 | CLANG_CXX_LIBRARY = "libc++";
666 | CLANG_ENABLE_MODULES = YES;
667 | CLANG_ENABLE_OBJC_ARC = YES;
668 | CLANG_ENABLE_OBJC_WEAK = YES;
669 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
670 | CLANG_WARN_BOOL_CONVERSION = YES;
671 | CLANG_WARN_COMMA = YES;
672 | CLANG_WARN_CONSTANT_CONVERSION = YES;
673 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
674 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
675 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
676 | CLANG_WARN_EMPTY_BODY = YES;
677 | CLANG_WARN_ENUM_CONVERSION = YES;
678 | CLANG_WARN_INFINITE_RECURSION = YES;
679 | CLANG_WARN_INT_CONVERSION = YES;
680 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
681 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
682 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
683 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
684 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
685 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
686 | CLANG_WARN_STRICT_PROTOTYPES = YES;
687 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
688 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
689 | CLANG_WARN_UNREACHABLE_CODE = YES;
690 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
691 | COPY_PHASE_STRIP = NO;
692 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
693 | ENABLE_NS_ASSERTIONS = NO;
694 | ENABLE_STRICT_OBJC_MSGSEND = YES;
695 | GCC_C_LANGUAGE_STANDARD = gnu11;
696 | GCC_NO_COMMON_BLOCKS = YES;
697 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
698 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
699 | GCC_WARN_UNDECLARED_SELECTOR = YES;
700 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
701 | GCC_WARN_UNUSED_FUNCTION = YES;
702 | GCC_WARN_UNUSED_VARIABLE = YES;
703 | MTL_ENABLE_DEBUG_INFO = NO;
704 | MTL_FAST_MATH = YES;
705 | SWIFT_COMPILATION_MODE = wholemodule;
706 | SWIFT_OPTIMIZATION_LEVEL = "-O";
707 | };
708 | name = Release;
709 | };
710 | 1876FFE024B7B6CE00B08E2B /* Debug */ = {
711 | isa = XCBuildConfiguration;
712 | buildSettings = {
713 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
714 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
715 | CODE_SIGN_ENTITLEMENTS = SwiftUI2.entitlements;
716 | "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-";
717 | CODE_SIGN_STYLE = Automatic;
718 | ENABLE_PREVIEWS = YES;
719 | INFOPLIST_FILE = iOS/Info.plist;
720 | IPHONEOS_DEPLOYMENT_TARGET = 14.0;
721 | LD_RUNPATH_SEARCH_PATHS = (
722 | "$(inherited)",
723 | "@executable_path/Frameworks",
724 | );
725 | PRODUCT_BUNDLE_IDENTIFIER = swiftUI.app.SwiftUI2;
726 | PRODUCT_NAME = SwiftUI2;
727 | SDKROOT = iphoneos;
728 | SUPPORTS_MACCATALYST = YES;
729 | SWIFT_VERSION = 5.0;
730 | TARGETED_DEVICE_FAMILY = "1,2,6";
731 | };
732 | name = Debug;
733 | };
734 | 1876FFE124B7B6CE00B08E2B /* Release */ = {
735 | isa = XCBuildConfiguration;
736 | buildSettings = {
737 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
738 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
739 | CODE_SIGN_ENTITLEMENTS = SwiftUI2.entitlements;
740 | "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-";
741 | CODE_SIGN_STYLE = Automatic;
742 | ENABLE_PREVIEWS = YES;
743 | INFOPLIST_FILE = iOS/Info.plist;
744 | IPHONEOS_DEPLOYMENT_TARGET = 14.0;
745 | LD_RUNPATH_SEARCH_PATHS = (
746 | "$(inherited)",
747 | "@executable_path/Frameworks",
748 | );
749 | PRODUCT_BUNDLE_IDENTIFIER = swiftUI.app.SwiftUI2;
750 | PRODUCT_NAME = SwiftUI2;
751 | SDKROOT = iphoneos;
752 | SUPPORTS_MACCATALYST = YES;
753 | SWIFT_VERSION = 5.0;
754 | TARGETED_DEVICE_FAMILY = "1,2,6";
755 | VALIDATE_PRODUCT = YES;
756 | };
757 | name = Release;
758 | };
759 | 1876FFE324B7B6CE00B08E2B /* Debug */ = {
760 | isa = XCBuildConfiguration;
761 | buildSettings = {
762 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
763 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
764 | CODE_SIGN_ENTITLEMENTS = macOS/macOS.entitlements;
765 | CODE_SIGN_STYLE = Automatic;
766 | COMBINE_HIDPI_IMAGES = YES;
767 | ENABLE_PREVIEWS = YES;
768 | INFOPLIST_FILE = macOS/Info.plist;
769 | LD_RUNPATH_SEARCH_PATHS = (
770 | "$(inherited)",
771 | "@executable_path/../Frameworks",
772 | );
773 | MACOSX_DEPLOYMENT_TARGET = 10.16;
774 | PRODUCT_BUNDLE_IDENTIFIER = swiftUI.app.SwiftUI2;
775 | PRODUCT_NAME = SwiftUI2;
776 | SDKROOT = macosx;
777 | SWIFT_VERSION = 5.0;
778 | };
779 | name = Debug;
780 | };
781 | 1876FFE424B7B6CE00B08E2B /* Release */ = {
782 | isa = XCBuildConfiguration;
783 | buildSettings = {
784 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
785 | ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
786 | CODE_SIGN_ENTITLEMENTS = macOS/macOS.entitlements;
787 | CODE_SIGN_STYLE = Automatic;
788 | COMBINE_HIDPI_IMAGES = YES;
789 | ENABLE_PREVIEWS = YES;
790 | INFOPLIST_FILE = macOS/Info.plist;
791 | LD_RUNPATH_SEARCH_PATHS = (
792 | "$(inherited)",
793 | "@executable_path/../Frameworks",
794 | );
795 | MACOSX_DEPLOYMENT_TARGET = 10.16;
796 | PRODUCT_BUNDLE_IDENTIFIER = swiftUI.app.SwiftUI2;
797 | PRODUCT_NAME = SwiftUI2;
798 | SDKROOT = macosx;
799 | SWIFT_VERSION = 5.0;
800 | };
801 | name = Release;
802 | };
803 | 1876FFE624B7B6CE00B08E2B /* Debug */ = {
804 | isa = XCBuildConfiguration;
805 | buildSettings = {
806 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
807 | CODE_SIGN_STYLE = Automatic;
808 | INFOPLIST_FILE = "Tests iOS/Info.plist";
809 | IPHONEOS_DEPLOYMENT_TARGET = 14.0;
810 | LD_RUNPATH_SEARCH_PATHS = (
811 | "$(inherited)",
812 | "@executable_path/Frameworks",
813 | "@loader_path/Frameworks",
814 | );
815 | PRODUCT_BUNDLE_IDENTIFIER = "swiftUI.app.Tests-iOS";
816 | PRODUCT_NAME = "$(TARGET_NAME)";
817 | SDKROOT = iphoneos;
818 | SWIFT_VERSION = 5.0;
819 | TARGETED_DEVICE_FAMILY = "1,2";
820 | TEST_TARGET_NAME = "SwiftUI2 (iOS)";
821 | };
822 | name = Debug;
823 | };
824 | 1876FFE724B7B6CE00B08E2B /* Release */ = {
825 | isa = XCBuildConfiguration;
826 | buildSettings = {
827 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
828 | CODE_SIGN_STYLE = Automatic;
829 | INFOPLIST_FILE = "Tests iOS/Info.plist";
830 | IPHONEOS_DEPLOYMENT_TARGET = 14.0;
831 | LD_RUNPATH_SEARCH_PATHS = (
832 | "$(inherited)",
833 | "@executable_path/Frameworks",
834 | "@loader_path/Frameworks",
835 | );
836 | PRODUCT_BUNDLE_IDENTIFIER = "swiftUI.app.Tests-iOS";
837 | PRODUCT_NAME = "$(TARGET_NAME)";
838 | SDKROOT = iphoneos;
839 | SWIFT_VERSION = 5.0;
840 | TARGETED_DEVICE_FAMILY = "1,2";
841 | TEST_TARGET_NAME = "SwiftUI2 (iOS)";
842 | VALIDATE_PRODUCT = YES;
843 | };
844 | name = Release;
845 | };
846 | 1876FFE924B7B6CE00B08E2B /* Debug */ = {
847 | isa = XCBuildConfiguration;
848 | buildSettings = {
849 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
850 | CODE_SIGN_STYLE = Automatic;
851 | COMBINE_HIDPI_IMAGES = YES;
852 | INFOPLIST_FILE = "Tests macOS/Info.plist";
853 | LD_RUNPATH_SEARCH_PATHS = (
854 | "$(inherited)",
855 | "@executable_path/../Frameworks",
856 | "@loader_path/../Frameworks",
857 | );
858 | MACOSX_DEPLOYMENT_TARGET = 10.16;
859 | PRODUCT_BUNDLE_IDENTIFIER = "swiftUI.app.Tests-macOS";
860 | PRODUCT_NAME = "$(TARGET_NAME)";
861 | SDKROOT = macosx;
862 | SWIFT_VERSION = 5.0;
863 | TEST_TARGET_NAME = "SwiftUI2 (macOS)";
864 | };
865 | name = Debug;
866 | };
867 | 1876FFEA24B7B6CE00B08E2B /* Release */ = {
868 | isa = XCBuildConfiguration;
869 | buildSettings = {
870 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
871 | CODE_SIGN_STYLE = Automatic;
872 | COMBINE_HIDPI_IMAGES = YES;
873 | INFOPLIST_FILE = "Tests macOS/Info.plist";
874 | LD_RUNPATH_SEARCH_PATHS = (
875 | "$(inherited)",
876 | "@executable_path/../Frameworks",
877 | "@loader_path/../Frameworks",
878 | );
879 | MACOSX_DEPLOYMENT_TARGET = 10.16;
880 | PRODUCT_BUNDLE_IDENTIFIER = "swiftUI.app.Tests-macOS";
881 | PRODUCT_NAME = "$(TARGET_NAME)";
882 | SDKROOT = macosx;
883 | SWIFT_VERSION = 5.0;
884 | TEST_TARGET_NAME = "SwiftUI2 (macOS)";
885 | };
886 | name = Release;
887 | };
888 | /* End XCBuildConfiguration section */
889 |
890 | /* Begin XCConfigurationList section */
891 | 1876FFAC24B7B6CD00B08E2B /* Build configuration list for PBXProject "SwiftUI2" */ = {
892 | isa = XCConfigurationList;
893 | buildConfigurations = (
894 | 1876FFDD24B7B6CE00B08E2B /* Debug */,
895 | 1876FFDE24B7B6CE00B08E2B /* Release */,
896 | );
897 | defaultConfigurationIsVisible = 0;
898 | defaultConfigurationName = Release;
899 | };
900 | 1876FFDF24B7B6CE00B08E2B /* Build configuration list for PBXNativeTarget "SwiftUI2 (iOS)" */ = {
901 | isa = XCConfigurationList;
902 | buildConfigurations = (
903 | 1876FFE024B7B6CE00B08E2B /* Debug */,
904 | 1876FFE124B7B6CE00B08E2B /* Release */,
905 | );
906 | defaultConfigurationIsVisible = 0;
907 | defaultConfigurationName = Release;
908 | };
909 | 1876FFE224B7B6CE00B08E2B /* Build configuration list for PBXNativeTarget "SwiftUI2 (macOS)" */ = {
910 | isa = XCConfigurationList;
911 | buildConfigurations = (
912 | 1876FFE324B7B6CE00B08E2B /* Debug */,
913 | 1876FFE424B7B6CE00B08E2B /* Release */,
914 | );
915 | defaultConfigurationIsVisible = 0;
916 | defaultConfigurationName = Release;
917 | };
918 | 1876FFE524B7B6CE00B08E2B /* Build configuration list for PBXNativeTarget "Tests iOS" */ = {
919 | isa = XCConfigurationList;
920 | buildConfigurations = (
921 | 1876FFE624B7B6CE00B08E2B /* Debug */,
922 | 1876FFE724B7B6CE00B08E2B /* Release */,
923 | );
924 | defaultConfigurationIsVisible = 0;
925 | defaultConfigurationName = Release;
926 | };
927 | 1876FFE824B7B6CE00B08E2B /* Build configuration list for PBXNativeTarget "Tests macOS" */ = {
928 | isa = XCConfigurationList;
929 | buildConfigurations = (
930 | 1876FFE924B7B6CE00B08E2B /* Debug */,
931 | 1876FFEA24B7B6CE00B08E2B /* Release */,
932 | );
933 | defaultConfigurationIsVisible = 0;
934 | defaultConfigurationName = Release;
935 | };
936 | /* End XCConfigurationList section */
937 | };
938 | rootObject = 1876FFA924B7B6CD00B08E2B /* Project object */;
939 | }
940 |
--------------------------------------------------------------------------------
/SwiftUI2.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/SwiftUI2.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | IDEDidComputeMac32BitWarning
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/SwiftUI2.xcodeproj/xcuserdata/apple.xcuserdatad/xcschemes/xcschememanagement.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | SchemeUserState
6 |
7 | SwiftUI2 (iOS).xcscheme_^#shared#^_
8 |
9 | orderHint
10 | 0
11 |
12 | SwiftUI2 (macOS).xcscheme_^#shared#^_
13 |
14 | orderHint
15 | 1
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/Tests iOS/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE)
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Tests iOS/Tests_iOS.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Tests_iOS.swift
3 | // Tests iOS
4 | //
5 | // Created by Apple on 10/07/20.
6 | //
7 |
8 | import XCTest
9 |
10 | class Tests_iOS: XCTestCase {
11 |
12 | override func setUpWithError() throws {
13 | // Put setup code here. This method is called before the invocation of each test method in the class.
14 |
15 | // In UI tests it is usually best to stop immediately when a failure occurs.
16 | continueAfterFailure = false
17 |
18 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this.
19 | }
20 |
21 | override func tearDownWithError() throws {
22 | // Put teardown code here. This method is called after the invocation of each test method in the class.
23 | }
24 |
25 | func testExample() throws {
26 | // UI tests must launch the application that they test.
27 | let app = XCUIApplication()
28 | app.launch()
29 |
30 | // Use recording to get started writing UI tests.
31 | // Use XCTAssert and related functions to verify your tests produce the correct results.
32 | }
33 |
34 | func testLaunchPerformance() throws {
35 | if #available(macOS 10.15, iOS 13.0, tvOS 13.0, *) {
36 | // This measures how long it takes to launch your application.
37 | measure(metrics: [XCTApplicationLaunchMetric()]) {
38 | XCUIApplication().launch()
39 | }
40 | }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/Tests macOS/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE)
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 |
22 |
23 |
--------------------------------------------------------------------------------
/Tests macOS/Tests_macOS.swift:
--------------------------------------------------------------------------------
1 | //
2 | // Tests_macOS.swift
3 | // Tests macOS
4 | //
5 | // Created by Apple on 10/07/20.
6 | //
7 |
8 | import XCTest
9 |
10 | class Tests_macOS: XCTestCase {
11 |
12 | override func setUpWithError() throws {
13 | // Put setup code here. This method is called before the invocation of each test method in the class.
14 |
15 | // In UI tests it is usually best to stop immediately when a failure occurs.
16 | continueAfterFailure = false
17 |
18 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this.
19 | }
20 |
21 | override func tearDownWithError() throws {
22 | // Put teardown code here. This method is called after the invocation of each test method in the class.
23 | }
24 |
25 | func testExample() throws {
26 | // UI tests must launch the application that they test.
27 | let app = XCUIApplication()
28 | app.launch()
29 |
30 | // Use recording to get started writing UI tests.
31 | // Use XCTAssert and related functions to verify your tests produce the correct results.
32 | }
33 |
34 | func testLaunchPerformance() throws {
35 | if #available(macOS 10.15, iOS 13.0, tvOS 13.0, *) {
36 | // This measures how long it takes to launch your application.
37 | measure(metrics: [XCTApplicationLaunchMetric()]) {
38 | XCUIApplication().launch()
39 | }
40 | }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/iOS/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE)
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 | LSRequiresIPhoneOS
22 |
23 | UIApplicationSceneManifest
24 |
25 | UIApplicationSupportsMultipleScenes
26 |
27 |
28 | UIApplicationSupportsIndirectInputEvents
29 |
30 | NSCameraUsageDescription
31 | to pick image
32 | UILaunchScreen
33 |
34 | UIImageName
35 | images-5
36 |
37 | UIRequiredDeviceCapabilities
38 |
39 | armv7
40 |
41 | UISupportedInterfaceOrientations
42 |
43 | UIInterfaceOrientationPortrait
44 | UIInterfaceOrientationLandscapeLeft
45 | UIInterfaceOrientationLandscapeRight
46 |
47 | UISupportedInterfaceOrientations~ipad
48 |
49 | UIInterfaceOrientationPortrait
50 | UIInterfaceOrientationPortraitUpsideDown
51 | UIInterfaceOrientationLandscapeLeft
52 | UIInterfaceOrientationLandscapeRight
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/images/MacOSHome.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/images/MacOSHome.png
--------------------------------------------------------------------------------
/images/MacOSLove1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/images/MacOSLove1.png
--------------------------------------------------------------------------------
/images/MacOSSearch1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/images/MacOSSearch1.png
--------------------------------------------------------------------------------
/images/MacOsAdd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/images/MacOsAdd.png
--------------------------------------------------------------------------------
/images/MacOsProfile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/images/MacOsProfile.png
--------------------------------------------------------------------------------
/images/MacOsProfile2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/images/MacOsProfile2.png
--------------------------------------------------------------------------------
/images/MacOsSearch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/images/MacOsSearch.png
--------------------------------------------------------------------------------
/images/SwiftUI2.0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/images/SwiftUI2.0.png
--------------------------------------------------------------------------------
/images/WholeOS.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/images/WholeOS.png
--------------------------------------------------------------------------------
/images/iPadAdd1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/images/iPadAdd1.png
--------------------------------------------------------------------------------
/images/iPadHome.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/images/iPadHome.png
--------------------------------------------------------------------------------
/images/iPadLove1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/images/iPadLove1.png
--------------------------------------------------------------------------------
/images/iPadProfile2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/images/iPadProfile2.png
--------------------------------------------------------------------------------
/images/iPadSearch1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/images/iPadSearch1.png
--------------------------------------------------------------------------------
/images/iPadSearch2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/images/iPadSearch2.png
--------------------------------------------------------------------------------
/images/iPhoneAdd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/images/iPhoneAdd.png
--------------------------------------------------------------------------------
/images/iPhoneHome1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/images/iPhoneHome1.png
--------------------------------------------------------------------------------
/images/iPhoneLove3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/images/iPhoneLove3.png
--------------------------------------------------------------------------------
/images/iPhoneLove4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/images/iPhoneLove4.png
--------------------------------------------------------------------------------
/images/iPhoneProfile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/images/iPhoneProfile.png
--------------------------------------------------------------------------------
/images/iPhoneSearch.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/images/iPhoneSearch.png
--------------------------------------------------------------------------------
/images/iPhoneSearch2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/images/iPhoneSearch2.png
--------------------------------------------------------------------------------
/images/iPhoneSearch3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/SomuYadav/SwiftUI2/3277bae5341ea29fd4bfc5dbd34edc0cb436103e/images/iPhoneSearch3.png
--------------------------------------------------------------------------------
/macOS/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | $(PRODUCT_NAME)
17 | CFBundlePackageType
18 | $(PRODUCT_BUNDLE_PACKAGE_TYPE)
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleVersion
22 | 1
23 | LSMinimumSystemVersion
24 | $(MACOSX_DEPLOYMENT_TARGET)
25 |
26 |
27 |
--------------------------------------------------------------------------------
/macOS/macOS.entitlements:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | com.apple.security.app-sandbox
6 |
7 | com.apple.security.files.user-selected.read-only
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------