Stewart Lynch
Stewart Lynch
  • 413
  • 1 386 281
Xcode Frameworks and Workspaces
In this video, I would like to introduce you to Xcode frameworks and how to apply these to projects and workspaces. This is a follow up to the video that I have already released on Xcode terminology that introduces Workspaces so if yo have not watched that video, I recommend you watch it first.
If you want to support my work, you can buy me a coffee :)
ko-fi.com/stewartlynch
******** Download my StewartLynch UA-cam Channel Application - Free ***********
stewartlynch.gumroad.com/l/obsjz T
Table of Contents:
0:00 Introduction
1:21 Adding a framework to a project
4:05 Using the framework
10:30 Removing a framework from a project
11:22 Adding a Workspace and adding a framework
13:14 Adding a New Project to workspace and use framework
16:32 Updating the Framework
Starter Project Files:
NONE
Completed Project:
NONE
Recommended Resources:
RocketSim - Build Apps Faster
gumroad.com/a/122988499/ftvbh
BigMountain Studio Books
SwiftData Mastery in SwiftUI
www.bigmountainstudio.com/swiftdata/77jt8
SwiftUI Views Mastery
www.bigmountainstudio.com/views-16/77jt8
SwiftUI 5 Book Bundle
www.bigmountainstudio.com/book-bundle/77jt8
Combine Mastery in SwiftUI
www.bigmountainstudio.com/combine/77jt8
Core Data Mastery in SwiftUI
www.bigmountainstudio.com/core-data/77jt8
SwiftUI Animations Mastery
www.bigmountainstudio.com/animations-16/77jt8
Other References:
Stewart Lynch's UA-cam Channel:
youtube.com/@StewartLynch
Stewart Lynch on Mastodon:
iosdev.space/@StewartLynch
Stewart Lynch On Threads:
@StewartLynch
Stewart Lynch on X:
x.com/StewartLynch
Stewart Lynch on LinkedIn
www.linkedin.com/in/stewartlynch
Переглядів: 947

Відео

Xcode templates, projects, targets, schemes and workspaces
Переглядів 2 тис.День тому
Are you confused by some of the Xcode terminology when creating your apps or viewing other open source code? What is an app template, target, scheme or workspace and how do they all work together? In this video let me try to clarify that for you. If you want to support my work, you can buy me a coffee :) ko-fi.com/stewartlynch Download my StewartLynch UA-cam Channel Application - Free stewartly...
Image Carousel in SwiftUI
Переглядів 1,3 тис.14 днів тому
In this video, I want to show you how you can present an array of images and their captions in a number of different ways. Specifically a carousel view. We can do this using either a series of Tab views, or a ScrollView. If you want to support my work, you can buy me a coffee :) ko-fi.com/stewartlynch Download my StewartLynch UA-cam Channel Application - Free stewartlynch.gumroad.com/l/obsjz Ta...
MeshGradient Creator
Переглядів 1,1 тис.14 днів тому
Apple introduced a new MeshGradient view for iOS 18/MacOS 15 so I created an app that will allow you to play around visually creating the MeshGradient view and either save the code to use in your own projects or download a desktop image based on your creation. You can download the free app from here. NOTE: Requires MacOS 15 (Sequoia) or later (If you are having problems downloading zip files, u...
Channel Review for 2023/24
Переглядів 59921 день тому
An overview and summary of the 60 videos that I created since WWDC 2023 and information on downloading my Channel Watcher App . If you want to support my work, you can buy me a coffee :) ko-fi.com/stewartlynch Download my StewartLynch UA-cam Channel Application - Free stewartlynch.gumroad.com/l/obsjz T Recommended Resources: RocketSim - Build Apps Faster gumroad.com/a/122988499/ftvbh BigMountai...
7 WeatherKit Persisting the Cities List
Переглядів 32121 день тому
This is the final video in a 7 Part series on building a full weather app using WeatherKit. In this video, we will persist our list of cities to the device by creating an extension to FileManager and adding some functions that will encode and decode our list of sites to write or read the list as JSON and have it stored in the apps documents directory. In addition, we will top the app off by giv...
6. WeatherKit: Adding Cities
Переглядів 310Місяць тому
This is the 6th video in a 7 Part series on building a full weather app using WeatherKit. There is no point in having a weather app if you can add and change the cities that you want to see the weather for and eventually have then persisted to the phone for subsequent launches In this video I am going to show you how you can use CoreLocation MapKit frameworks to search for and add cities by nam...
5. WeatherKit: DailyForecast
Переглядів 350Місяць тому
This is the 5th video in a 7 Part series on building a full weather app using WeatherKit. In this video we will be adding the final forecast type and that is a 10 day daily forecast. If you want to support my work, you can buy me a coffee :) ko-fi.com/stewartlynch Table of Contents: 0:00 Introduction 1:17 DailyForecast function 3:14 Creating a DailyForecast View 11:00 Creating a Temperature Ran...
4. WeatherKit: HourlyForecast and UIUpgrade
Переглядів 453Місяць тому
This is the 4th video in a 7 Part series on building a full weather app using WeatherKit. In this video, I will start with a redesign of the CitiesList view to display more information on our cities and then add an houry forecast for each city. In addition, we will do some more refactoring of our code to clean it up. If you want to support my work, you can buy me a coffee :) ko-fi.com/stewartly...
3. WeatherKit: Conditions Backgrounds and Other Cities
Переглядів 261Місяць тому
This is the 3rd video in a 7 Part series on building a full weather app using WeatherKit. In this video we are going to greatly improve the appearance of our app by adding a background view that will reflect the current weather condition and add some mock data so we can view the current weather and time in other cities. If you want to support my work, you can buy me a coffee :) ko-fi.com/stewar...
1. WeatherKit: Introduction and CurrentWeather Conditions
Переглядів 1,3 тис.Місяць тому
WeatherKit provides timely weather information including current conditions, minute precipitation, along with hourly, and daily forecasts. It also provides severe weather alerts. In this series we will be building a personal Weather application. Of course, there are better applications out there, including Apple's own Weather application so why would you want to build your own. Well, if you are...
2. WeatherKit: LocationManager and CurrentLocation
Переглядів 437Місяць тому
This is the second video in a 7 Part series on building a full weather app using WeatherKit. In this video we will introduce locationManager so that the app will be able to determine your current location and display the weather for that location when the app launches. If you want to support my work, you can buy me a coffee :) ko-fi.com/stewartlynch Table of Contents: 0:00 Introduction 2:25 Cit...
Deep Dish Swift 2024 Talk - Stewart Lynch
Переглядів 3,8 тис.Місяць тому
This is the presentation that I planned for Deep Dish Swift 2024. Unfortunately, I tested positive for COVID just prior to the conference But, I did have the opportunity to record one of my early rehearsals so here it is. If you want to support my work, you can buy me a coffee :) ko-fi.com/stewartlynch Download my StewartLynch UA-cam Channel Application - Free stewartlynch.gumroad.com/l/obsjz T...
3. Camera Photos SwiftData: Camera and Zoomable ScrollView
Переглядів 7892 місяці тому
This is the 3rd and final video in a series where I show you how to add a photos picker or choose, and use a camera to take photos and persist those photos to a Swift Data data Store. In this final video, I show you how you can access and use your device's camera to take a photo with either the front or back camera. I also show you how you can quickly add zoom and pan to your photos. If you wan...
2. Camera Photos SwiftData: Update/Edit and PhotoPicker
Переглядів 7932 місяці тому
This is the second in a series of 3 videos where I will show you how to add a photos picker or choose, and use a camera to take photos and persist those photos to a Swift Data data Store. In this video, you will create a viewModel and view for presenting both updates and the creation of new objects for your data store and use the PhotosUI photoPicker for choosing a photo from your photo album t...
1. Camera Photos SwiftData: DataModel and View Setup
Переглядів 1,6 тис.2 місяці тому
1. Camera Photos SwiftData: DataModel and View Setup
Dynamic Application FAQs in SwiftUI
Переглядів 1,5 тис.2 місяці тому
Dynamic Application FAQs in SwiftUI
10. MapKit with SwiftUI - MapControls and Styles
Переглядів 7872 місяці тому
10. MapKit with SwiftUI - MapControls and Styles
9. MapKit with SwiftUI - Routes and Directions
Переглядів 1,2 тис.2 місяці тому
9. MapKit with SwiftUI - Routes and Directions
8. MapKit with SwiftUI - User Location Search and OpenInMaps
Переглядів 8492 місяці тому
8. MapKit with SwiftUI - User Location Search and OpenInMaps
7. MapKit with SwiftUI - User Location and LocationManager
Переглядів 1,3 тис.3 місяці тому
7. MapKit with SwiftUI - User Location and LocationManager
6. MapKit with SwiftUI - Tap to place marker on Map
Переглядів 1,1 тис.3 місяці тому
6. MapKit with SwiftUI - Tap to place marker on Map
Stewart Lynch Channel Watcher App
Переглядів 9403 місяці тому
Stewart Lynch Channel Watcher App
5. MapKit with SwiftUI - Marker Selection and LookaroundView
Переглядів 1,2 тис.3 місяці тому
5. MapKit with SwiftUI - Marker Selection and LookaroundView
4. MapKit with SwiftUI - MapManager and Searching
Переглядів 9823 місяці тому
4. MapKit with SwiftUI - MapManager and Searching
3. MapKit with SwiftUI - DestinationsList and Navigation
Переглядів 1,2 тис.3 місяці тому
3. MapKit with SwiftUI - DestinationsList and Navigation
2. MapKit with SwiftUI - Map Destination Persistence and MockData
Переглядів 1,5 тис.3 місяці тому
2. MapKit with SwiftUI - Map Destination Persistence and MockData
1. MapKit with SwiftUI - Regions, Markers and Annotations and CameraPosition
Переглядів 3,6 тис.3 місяці тому
1. MapKit with SwiftUI - Regions, Markers and Annotations and CameraPosition
Custom Calendar Tallies in SwiftUI
Переглядів 2,6 тис.3 місяці тому
Custom Calendar Tallies in SwiftUI
Custom SwiftUI Calendar
Переглядів 6 тис.4 місяці тому
Custom SwiftUI Calendar

КОМЕНТАРІ

  • @brucknerdevilliers
    @brucknerdevilliers 4 години тому

    Thank you Stewart.

  • @brucknerdevilliers
    @brucknerdevilliers 4 години тому

    Other than a few annoying differences between Xcode 15.3 and 15.4, this is an excellent instructional video. Stewart has the skill to translate Apple's double-speak into intelligible English through his thorough examples. A teacher of note!

  • @Matteobardanca-g8s
    @Matteobardanca-g8s 8 годин тому

    Так и не понял, что за заработок, т.е. это просто выгодня комиссия или что?

  • @antonreashin
    @antonreashin 10 годин тому

    Благодарю 🙏

  • @andrejkling3886
    @andrejkling3886 13 годин тому

    Excellent 🔥 thank you Stewart

  • @Prashant-7
    @Prashant-7 День тому

    I learned default init is also internal

  • @roman3249
    @roman3249 День тому

    So how does a framework differ from a swift package? Which one should we use (how to choose)? I've never used frameworks because I always use packages... 😳

    • @StewartLynch
      @StewartLynch День тому

      A Framework is a bundle containing compiled code (binaries), resources, and metadata that can be used by other applications. Frameworks can be static or dynamic libraries. A Swift Package is a way to distribute code and resources using the Swift Package Manager (SPM). It is a set of source files, resources, and metadata that you can distribute and reuse in other Swift projects.

  • @AlanRick26
    @AlanRick26 День тому

    Love the cover pic with your framework armchair❎ throne✅ 😂

  • @kalyanaramanramakrishnan2584

    Very informative video. Clear all my doubts and gave me depth information. Thanks Buddy.

  • @DaveJacobseniOS
    @DaveJacobseniOS День тому

    I had never known what a workspace was before but this is pretty nifty!

  • @slimslim1027
    @slimslim1027 День тому

    can this be done as easily on the Apple Watch? I am unable to access the folder to read the file. I wondering if it is because I am not doing it on a phone

  • @dibjr
    @dibjr 2 дні тому

    Nice video, Stewart. I am working on a three-person team and intercommunication is key to keeping my code straight. I don't talk to me, and myself doesn't talk to I. Me, myself, and I will all learn to use workspaces to share our code.

  • @rocotbrent
    @rocotbrent 2 дні тому

    TY)

  • @rocotbrent
    @rocotbrent 2 дні тому

    Comment below)

  • @StewartLynch
    @StewartLynch 2 дні тому

    It appears that I made a dumb error on the initializer for the CalendarView where I subtract 1 from the end of the month rather than adding a day. init(date: Date, selectedActivity: Activity?) { self.date = date self.selectedActivity = selectedActivity let endOfMonthAdjustment = Calendar.current.date(byAdding: .day, value: 1, to: date.endOfMonth)! let predicate = #Predicate<Workout> {$0.date >= date.startOfMonth && $0.date < endOfMonthAdjustment} _workouts = Query(filter: predicate, sort: \Workout.date) }

  • @bharned3
    @bharned3 2 дні тому

    I just noticed for June 29, 2024 and 30, 2024 this is not displaying the counts. Have you noticed this?

    • @StewartLynch
      @StewartLynch 2 дні тому

      I will have to check

    • @bharned3
      @bharned3 2 дні тому

      @@StewartLynch It is actually on your other one where you added setupCounts - Trying to debug now to see if I can figure it out

    • @StewartLynch
      @StewartLynch 2 дні тому

      It is a dumb error on my part. I will pin a comment with the fix

    • @bharned3
      @bharned3 2 дні тому

      @@StewartLynch You rock.. Was not expecting a response so quickly

  • @gjermundification
    @gjermundification 2 дні тому

    Love this one! In particular editing the Framework along the way. Does the frameworks have an overhead? Can I keep the xcdatamodel in a framework and its data in the project? Or do I put the UIs in projects and the application in framework? Nice, I will be able to make a MacCLI app, iPhone, and iPad at the same time in the same project.

  • @swiftodyssey
    @swiftodyssey 2 дні тому

    This is so helpful! Thanks Stewart

  • @milanlabus1582
    @milanlabus1582 2 дні тому

    For anyone watch into 2024 @ObservableObject has been replaced check out apples "Migrating from the Observable Object protocol to the Observable macro" docs it takes only a few changes to migrate from this to the new method

  • @casperfang9075
    @casperfang9075 2 дні тому

    How to save the text from the live text ?

  • @upper_deck
    @upper_deck 4 дні тому

    Hi Stewart, I have done iOS programming years ago with Objective-C, but did not continue. Now try to do a restart and found your videos. They are excellent and will help me a lot. Even in the first two videos I found a lot new features, which I have not known before. - Thank you!

  • @Jaffar-e4s
    @Jaffar-e4s 4 дні тому

    awesome explanation

  • @dmacharo
    @dmacharo 5 днів тому

    That’s a game-changer! Thank you, Stewart, for helping us expand our use of Xcode beyond what I thought was possible.​

  • @GeorgeHoyt-vj8so
    @GeorgeHoyt-vj8so 6 днів тому

    76 and will be 77 in a couple months, but try to stay up on the development processes and relating to you and your videos make that task so much easier and frankly fun. I also like Paul Hudson's and Paul Hegarty's videos as well. But yours resonates with me more. Maybe my age is a factor. Anyway ... hope you start feeling belter and keep up the very fine work you are doing!

    • @StewartLynch
      @StewartLynch 5 днів тому

      I am fully recovered thanks. Glad you enjoy the videos.

  • @ZemK-hu5nm
    @ZemK-hu5nm 6 днів тому

    You can get cleaner code if you refactor your LocalNotification struct to: struct LocalNotification { enum ScheduleType { case time(timeInterval: Double) case calendar(dateComponent: DateComponents) } let identifier: String let scheduleType: ScheduleType let title: String let body: String let repeats: Bool } then you can just write: var trigger: UNNotificationTrigger? switch localNotification.scheduleType { case .time(let timeInterval): trigger = UNTimeIntervalNotificationTrigger(timeInterval: timeInterval, repeats: localNotification.repeats) case .calendar(let dateComponent): trigger = UNCalendarNotificationTrigger(dateMatching: dateComponent, repeats: localNotification.repeats) }

  • @tazman7689
    @tazman7689 6 днів тому

    Great video my friend. I like the workspace thing. I do lots of tutorials from you, Sean Allen, now I can keep them all in one workspace. How goes version control work? Does it work separately for each project or for the whole workspace?

    • @StewartLynch
      @StewartLynch 6 днів тому

      Separately for each project is the way I do it.

    • @tazman7689
      @tazman7689 6 днів тому

      That’s what I was wondering, I guess it wasn’t clear. Can each target in a workspace be under their own repo?

    • @StewartLynch
      @StewartLynch 6 днів тому

      @tazman7689 yes they can.

    • @tazman7689
      @tazman7689 6 днів тому

      @@StewartLynch Thanks my friend. I will have to implement this for all the tutorials I've watched from you and Sean. Have a great day.

  • @mario_luis_dev
    @mario_luis_dev 7 днів тому

    On an app I'm currently working on the `@Attribute(.externalStorage)` is not working as expected, as I see the whole blobs (50KB+) being stored internally (they show as BLOBs, not images, but still I think those are large files regardless). The .default_SUPPORT folder is also not storing the images created from this data; I see all the large blobs in the persisted table. Not sure what's going on. Do you think that SwiftData possibly only respects the `.externalStorage` if the Data you're trying to save is larger (like 1MB+)? I saw a blog from Paul Hudson that mentioned something along these lines, but there's no in-depth discussion about it, just a brief mention of this issue.

    • @StewartLynch
      @StewartLynch 7 днів тому

      That may very well be the case. I think I read that somewhere too.

  • @spsexton
    @spsexton 7 днів тому

    Great video

  • @mario_luis_dev
    @mario_luis_dev 7 днів тому

    6:52 the “not allowing @Unique properties” part is baffling. I hope they fix this at some point

  • @mario_luis_dev
    @mario_luis_dev 7 днів тому

    this was a masterful series btw. Your work is very much appreciated Stewart ❤

  • @mario_luis_dev
    @mario_luis_dev 7 днів тому

    another way to solve the Preview problem while leaving it in the Preview Contents folder is to add `#if DEBUG` directives on all previews

  • @Ilanvas
    @Ilanvas 7 днів тому

    Many thanks Stewart

  • @iOSDevHeath
    @iOSDevHeath 8 днів тому

    I was looking for a tutorial just like this! Thanks Stewart!

  • @NaNi-bl5pc
    @NaNi-bl5pc 8 днів тому

    Thanks Stewart - as always very helpful and enjoyable! I often need the shared/multi schema, especially when I want to do/build all platforms in one build-run. Such a shared schema is very helpful for this. Question for all: naming conventions regarding project names, target, schema and folders/groups etc etc? Is there a good tried and tested standard/practice. Especially when developing for many target platforms and I keep stumbling across difficulties...also with the assets that are shared. Furthermore: in Xcode 16 the folders and groups in the project navigator are also handled differently somehow...do you have any experience?

    • @StewartLynch
      @StewartLynch 7 днів тому

      I will be doing a video in August on Xcode changes including folders and groups.

  • @CraigSchubert
    @CraigSchubert 8 днів тому

    Great info, thanks Stewart!!

  • @gjermundification
    @gjermundification 8 днів тому

    Oh, this is a bit like the book XCode Treasures from pragprog; I guess this video is way more 2024 than the book however..

    • @StewartLynch
      @StewartLynch 8 днів тому

      I actually have that book, but I did not reference it at all in the creation of this video. If you have watched the video, I think you will see that.

    • @gjermundification
      @gjermundification 8 днів тому

      @@StewartLynch I was recommending some further reading, not attempting to insult you.

    • @StewartLynch
      @StewartLynch 8 днів тому

      No worries. I just want to make it clear that if I ever use content from anyone else, I will always give credit.

  • @alexsal6069
    @alexsal6069 8 днів тому

    Thanks a lot, your content is always top notch. Always a pleasure to watch your videos ❤

  • @mhfs61
    @mhfs61 9 днів тому

    Thank you Stewart.

  • @mhfs61
    @mhfs61 9 днів тому

    Thank you Stewart. Information was helpful.

  • @Tritoon710
    @Tritoon710 9 днів тому

    Thank you so much. Please more beginners tutorials.

    • @StewartLynch
      @StewartLynch 9 днів тому

      I have lots of them. ******** Download my StewartLynch UA-cam Channel Application - Free *********** stewartlynch.gumroad.com/l/obsjz

    • @Tritoon710
      @Tritoon710 9 днів тому

      @@StewartLynch Many thanks.

  • @nym49
    @nym49 9 днів тому

    Thank you! Always something new in you videos even though I know about the general topic

  • @byaruhaf
    @byaruhaf 9 днів тому

    Thanks, Stewart! I always learn something new from your content that I wouldn't have figured out on my own.

  • @swiftodyssey
    @swiftodyssey 9 днів тому

    Very insightful. Thanks Stewart!

  • @benyaminabediyan5451
    @benyaminabediyan5451 9 днів тому

    Usually I don't write any comments but thank you Stewart; you helped me understand this damn concept. Really appreciate your work. hope you would start making a full fledged course on Swift and SwiftUI.

  • @robert.ios.developer
    @robert.ios.developer 9 днів тому

    Thanks, this video is really cool 🙌

  • @andrejkling3886
    @andrejkling3886 10 днів тому

    I got issue. When you to give some genres and then click on stars or in progress update button appears, then you try to update and button like disabled doesn’t work. I found solution of this. I deleted ViewThatFits and stay only ScrollView : horizontal. And then when I do again what I wrote… all works. Thanks a lot again for providing such amazing content ... 💯

  • @andrejkling3886
    @andrejkling3886 11 днів тому

    In modelContainer(container) like modelContainer(for: Book.self) should we add Quote like modelContainer(for: [Book.self, Quote.self]) ?

    • @StewartLynch
      @StewartLynch 11 днів тому

      Not necessary since Book has a relationship to Quote

    • @andrejkling3886
      @andrejkling3886 11 днів тому

      @@StewartLynch thank you