├── 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 | --------------------------------------------------------------------------------