Stewart Lynch
Stewart Lynch
  • Видео 414
  • Просмотров 1 392 368
Laying out views with ContainerRelativeFrame in SwiftUI
In this video, I want to return to my Deeper Understanding series and dig into the ContainerRelativeFrame view modifier for SwiftUI.
It is a powerful modifier, but there are some things you need to be aware of before you start to implement it in your own projects.
If you want to support my work, you can buy me a coffee :)
ko-fi.com/stewartlynch
******** Download my StewartLynch RUclips Channel Application - Free ***********
stewartlynch.gumroad.com/l/obsjz T
Table of Contents:
0:00 Introduction
1:58 The Basics
4:45 Relative Sizing View
8:05 More Relative Sizing
10:05 Count and Span
12:35 Image Carousel
Starter Project Files:
(If you are having problems downloading zip files, use Safari. Chrome r...
Просмотров: 251

Видео

Xcode Frameworks and Workspaces
Просмотров 1,3 тыс.День назад
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 Stewart...
Xcode templates, projects, targets, schemes and workspaces
Просмотров 2,1 тыс.14 дней назад
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 RUclips Channel Application - Free stewartl...
Image Carousel in SwiftUI
Просмотров 1,4 тыс.21 день назад
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 RUclips Channel Application - Free stewartlynch.gumroad.com/l/obsjz T...
MeshGradient Creator
Просмотров 1,2 тыс.21 день назад
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
Просмотров 60728 дней назад
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 RUclips Channel Application - Free stewartlynch.gumroad.com/l/obsjz T Recommended Resources: RocketSim - Build Apps Faster gumroad.com/a/122988499/ftvbh BigMounta...
7 WeatherKit Persisting the Cities List
Просмотров 332Месяц назад
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
Просмотров 318Месяц назад
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
Просмотров 364Месяц назад
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
Просмотров 471Месяц назад
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
Просмотров 272Месяц назад
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
Просмотров 456Месяц назад
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,9 тыс.Месяц назад
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 RUclips Channel Application - Free stewartlynch.gumroad.com/l/obsjz ...
3. Camera Photos SwiftData: Camera and Zoomable ScrollView
Просмотров 8062 месяца назад
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
Просмотров 8122 месяца назад
2. Camera Photos SwiftData: Update/Edit and PhotoPicker
1. Camera Photos SwiftData: DataModel and View Setup
Просмотров 1,7 тыс.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
Просмотров 8112 месяца назад
10. MapKit with SwiftUI - MapControls and Styles
9. MapKit with SwiftUI - Routes and Directions
Просмотров 1,2 тыс.3 месяца назад
9. MapKit with SwiftUI - Routes and Directions
8. MapKit with SwiftUI - User Location Search and OpenInMaps
Просмотров 8743 месяца назад
8. MapKit with SwiftUI - User Location Search and OpenInMaps
7. MapKit with SwiftUI - User Location and LocationManager
Просмотров 1,4 тыс.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
Просмотров 9443 месяца назад
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
Просмотров 1 тыс.3 месяца назад
4. MapKit with SwiftUI - MapManager and Searching
3. MapKit with SwiftUI - DestinationsList and Navigation
Просмотров 1,3 тыс.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 тыс.4 месяца назад
Custom Calendar Tallies in SwiftUI

Комментарии

  • @bugsyace
    @bugsyace День назад

    You are so SMART and HELPFUL! I have been away a few months and came back today to continue my SwiftUI journey with you and was prepared to spend time figuring out where to start, but you had already done that for me and rather than searching all day I can jump right in TO THE ONLY LESSONS I LOOK FORWARD TO because of how you teach. Your thoughtfulness, your patience, and non assuming sttitude of knowledge we may not have during your lessons makes what has been a tedious process I refused to give up on, something I can be excited about knowing I will walk away with knowledge and belief in myself moving forward. There are teachers that are very intelligent but can be very discouraging by the end of their lessons because they know so much they forget we can get lost in their lessons and be unsuccessful at the end causing us to doubt ourselves. Thats why I try to give my feed back on your lessons often in hopes that other students of SwiftUI can feel good about being in the right place with YOU! . Ok time to start :)

  • @swiftodyssey
    @swiftodyssey День назад

    Thanks Stewart!

  • @Leonard_photography
    @Leonard_photography День назад

    Thank you ! Those videos are perfect and most important, slow and well explicated

  • @tomross4599
    @tomross4599 День назад

    Your date helpers should be 6 lines, not 17: static var capitalizedFirstLettersOfWeekdays: [String] { Calendar.current.veryShortStandaloneWeekdaySymbols } static var fullMonthNames: [String] { Calendar.current.monthSymbols } Typical ChatGPT being a blabbermouth.

    • @StewartLynch
      @StewartLynch День назад

      Whatever works for you, Thanks for your contribution.

  • @HammadKhanYT
    @HammadKhanYT 3 дня назад

    I did like your content and I subscribed to your channel :) Excellent thorough content by the way.

  • @oldschool84
    @oldschool84 3 дня назад

    Hi Stweart, big thanks from beginner developer. Great free content. Can anyone explaine to me, how and when firstView change state from true to false? Because in this example never get into this block of code. It's always true .onChange(of: status) { oldValue, newValue in if !firstView { if newValue == .onShelf { dateStarted = Date.distantPast dateComplited = Date.distantPast } else if newValue == .inProgress && oldValue == .completed { // from completed to inProgress dateComplited = Date.distantPast } else if newValue == .inProgress && oldValue == .onShelf { // book has been started dateStarted = Date.now } else if newValue == .completed && oldValue == .onShelf { // forgot to start book dateComplited = Date.now dateStarted = dateAdded } else { // completed dateComplited = Date.now } firstView = false } }

  • @0xjorgev
    @0xjorgev 3 дня назад

    Stewart why don't you add your custom classes and extensions to a Swift Package? easier to manage, love your content!

    • @StewartLynch
      @StewartLynch 2 дня назад

      I could do that. This was just an experiment.

  • @kakaostyle
    @kakaostyle 4 дня назад

    I got the project I used in the video on GitHub and ran it, but the Cloud function doesn't work. What should I do?? I can't speak English. Is there anything I missed in the video?? I can see the my containers in cloud consol, but not work cloud sync with my two iphone device

  • @milanlabus1582
    @milanlabus1582 5 дней назад

    What an amazing tutorial, no pay walls no promotions, code is in the description including all links, he could have put this behind a 100 dollar paywall but instead he is helping everyone learn for free hats off

  • @ZTagger97
    @ZTagger97 5 дней назад

    Very informative! Thank u Stewart

  • @stelluspereira
    @stelluspereira 5 дней назад

    Nice video, thankyou Once again Mr Lynch it would be more helpful for developers who are more 'hands on' defining database tables directly &setting up foreign key relationships directly using the Xcode(coredata data modeler)& using it in SwiftUI , BTW,I happened to watch 'Karin Prater' video, 'I am lost' !, , she has so much materials online, learned few things from her videos (not complaining, perhaps the way I learn is different!), so I would truly appreciate if you could create one (as you know especially in real productivity apps, you will have many tables & FK relationships , so defining tables with UI interface is better)

    • @StewartLynch
      @StewartLynch 5 дней назад

      This video is about SwiftData, not CoreData so you don’t do it the same way as CoreData. There is much more to this as this is the first in an entire series

    • @stelluspereira
      @stelluspereira 5 дней назад

      @@StewartLynchsorry I meant swift data

  • @Leonard_photography
    @Leonard_photography 5 дней назад

    Amazing

  • @brucknerdevilliers
    @brucknerdevilliers 6 дней назад

    Thank you Stewart.

  • @brucknerdevilliers
    @brucknerdevilliers 6 дней назад

    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!

  • @antonreashin
    @antonreashin 6 дней назад

    Благодарю 🙏

  • @andrejkling3886
    @andrejkling3886 6 дней назад

    Excellent 🔥 thank you Stewart

  • @Prashant-7
    @Prashant-7 7 дней назад

    I learned default init is also internal

  • @roman3249
    @roman3249 7 дней назад

    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 7 дней назад

      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 7 дней назад

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

  • @kalyanaramanramakrishnan2584
    @kalyanaramanramakrishnan2584 7 дней назад

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

  • @DaveJacobseniOS
    @DaveJacobseniOS 7 дней назад

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

  • @slimslim1027
    @slimslim1027 7 дней назад

    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

    • @StewartLynch
      @StewartLynch 5 дней назад

      Sorry. I do t understand your question

  • @dibjr
    @dibjr 7 дней назад

    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 7 дней назад

    TY)

  • @rocotbrent
    @rocotbrent 7 дней назад

    Comment below)

    • @StewartLynch
      @StewartLynch 4 дня назад

      Very insightful comment. Thanks

    • @rocotbrent
      @rocotbrent 4 дня назад

      @@StewartLynch TY U 2. Please continue video series with Xcode exploration.

    • @StewartLynch
      @StewartLynch 4 дня назад

      What other topics do you want? If you download my Channel Listing app, I have a tag there for Xcode so you can find that I have a lot of videos on Xcode that might be of some assistance. ******** Download my StewartLynch RUclips Channel Application - Free *********** stewartlynch.gumroad.com/l/obsjz

  • @StewartLynch
    @StewartLynch 8 дней назад

    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 7 дней назад

      Thanks Stewart

  • @bharned3
    @bharned3 8 дней назад

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

    • @StewartLynch
      @StewartLynch 8 дней назад

      I will have to check

    • @bharned3
      @bharned3 8 дней назад

      @@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 8 дней назад

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

    • @bharned3
      @bharned3 8 дней назад

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

  • @gjermundification
    @gjermundification 8 дней назад

    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 8 дней назад

    This is so helpful! Thanks Stewart

  • @milanlabus1582
    @milanlabus1582 8 дней назад

    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 8 дней назад

    How to save the text from the live text ?

  • @upper_deck
    @upper_deck 10 дней назад

    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 10 дней назад

    awesome explanation

  • @dmacharo
    @dmacharo 11 дней назад

    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 11 дней назад

    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 11 дней назад

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

  • @ZemK-hu5nm
    @ZemK-hu5nm 12 дней назад

    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 12 дней назад

    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 12 дней назад

      Separately for each project is the way I do it.

    • @tazman7689
      @tazman7689 12 дней назад

      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 12 дней назад

      @tazman7689 yes they can.

    • @tazman7689
      @tazman7689 12 дней назад

      @@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 12 дней назад

    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 12 дней назад

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

  • @spsexton
    @spsexton 12 дней назад

    Great video

  • @mario_luis_dev
    @mario_luis_dev 13 дней назад

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

  • @mario_luis_dev
    @mario_luis_dev 13 дней назад

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

  • @mario_luis_dev
    @mario_luis_dev 13 дней назад

    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 13 дней назад

    Many thanks Stewart

  • @iOSDevHeath
    @iOSDevHeath 13 дней назад

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

  • @NaNi-bl5pc
    @NaNi-bl5pc 13 дней назад

    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 13 дней назад

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

  • @CraigSchubert
    @CraigSchubert 14 дней назад

    Great info, thanks Stewart!!