Techne Coding
Techne Coding
  • Видео 14
  • Просмотров 13 295
Xcode Build Configurations & Environment Variables
Hey there coders. In this video I give an overview of the pros and cons of using UIKit navigation with SwiftUI views. I give a quick example of how you can use a UIHostingController to wrap your SwiftUI views in order to use them from UIKit.
Welcome back! In this video I will get you one step closer to a full production build setup. This time we cover Xcode build configurations and environment variables!
Both are ways to configure your project and are VERY useful especially if you plan to use automated build processes like CI/CD pipelines. They can also make your life easier when switching between different build environment that require different setups (i.e. dev, staging, QA, prod etc..)...
Просмотров: 167

Видео

SwiftUI with UIKit Navigation
Просмотров 1,8 тыс.6 месяцев назад
Hey there coders. In this video I give an overview of the pros and cons of using UIKit navigation with SwiftUI views. I give a quick example of how you can use a UIHostingController to wrap your SwiftUI views in order to use them from UIKit. 🔒 Key Highlights: * Pros and cons of SwiftUI navigation * Pros and cons of UIKit navigation * How to use SwiftUI within a UIKit app Don't forget to like, s...
iOS SwiftUI Authentication pt. 2 - Navigation, ViewModels and Finishing Up
Просмотров 1,2 тыс.6 месяцев назад
Welcome back to another video! In this one we bring in our model layer code from the UIKit project (with a quick overview of it). Then we set up our navigation using the SwiftUI coordinator pattern and finish our view models. We fix a few issues I introduced 😅 and finish up the app. This is a bit of a long one so sit back, grab a sandwich or some coffee and enjoy. The next video I’m going to qu...
iOS SwiftUI Authentication pt 1 - Project Setup + Views and ViewModels
Просмотров 1,1 тыс.7 месяцев назад
Welcome back to another video! In this one we start making our iOS authentication app but this time in SwiftUI! We will be covering the project setup, making any boilerplate (spoiler, it’s not much), setting up all of our views and even creating the basic view models for our app. Things in this video will move quickly since SwiftUI allows us to skip many steps we went through in the UIKit proje...
iOS Authentication - ViewModels and Testing the Finished App (pt. 8)
Просмотров 1867 месяцев назад
Join us in the final iOS authentication tutorial for UIKit! We finish by hooking up ViewModels to handle the business logic for our UIViewControllers and sending out our network requests. We will also create our Network routes to store the URLs we need to send out network requests. As a bonus, I make a mistake! But we solve it in the video and you get a better look at how to debug a full stack ...
iOS Authentication - Keychain and Making Network Calls (pt. 7)
Просмотров 2097 месяцев назад
Join us in another iOS authentication tutorial as we build our code to save and manage access tokens with KeyChain. We will also create the boilerplate code to handle our network requests in a way that can be used in larger apps. Join us in another iOS authentication tutorial as we finish our UIKit programmatic views and implement the Coordinator navigation pattern in our app. By the end of thi...
iOS Authentication - Views + Coordinator Navigation (pt. 6)
Просмотров 3347 месяцев назад
Join us in another iOS authentication tutorial as we finish our UIKit programmatic views and implement the Coordinator navigation pattern in our app. By the end of this video you will know how to make a basic navigation coordinator as well as hooking it up within the app. This is a production ready pattern so stay tuned to the entire navigation content! At the end we will have all of the naviga...
iOS Authentication - Project Setup/UIKit AutoLayout (pt. 5)
Просмотров 2767 месяцев назад
Join us while we setup and configure the start of our iOS authentication project in UIKit. In this video we tackle setting up the project for programmatic UIKit views, write boilerplate code to help create those views and some discussions on why you would want to use programmatic views in UIKit vs Storyboards. We create the basics of our Login screen and we give a sneak peak at the final produc...
iOS Authentication - End: Django Authentication Backend (pt. 4)
Просмотров 2488 месяцев назад
Join us for the latest installment in our iOS authentication series using Django for the backend! In this video, we tackle key functionalities crucial for an authentication system. We start by crafting essential Python functions to manage user activation, including sending activation emails and handling access tokens. These functions are pivotal in ensuring a secure and efficient user managemen...
iOS Authentication - Creating a Django Registration Endpoint (pt. 3)
Просмотров 2319 месяцев назад
Welcome back to our series on building an iOS authentication system using a Django backend! In this 3rd video I make the registration end point that is used to create new users. 🔒 Key Highlights: * How url routing works in Django * Making a registration endpoint using Django Rest Framework * Information on why the endpoint should not be locked down with security * Testing the endpoint using Pos...
iOS Authentication - Django Backend Setup (pt. 2)
Просмотров 4419 месяцев назад
Welcome back to our series on building an iOS authentication system using a Django backend! In this second installment, we dive deep into the heart of Django. Follow along as I guide you through creating and configuring a brand-new Django project specifically tailored for iOS authentication. 🔒 Key Highlights: * Step-by-step instructions on setting up a Django project. * Tips and tricks for conf...
iOS Authentication: Overview and Best Practices (pt. 1)
Просмотров 5069 месяцев назад
Welcome to our advanced iOS tutorial series! In this episode, we dive deep into the essentials of handling login credentials in iOS app development. We start by exploring why authentication is crucial, focusing on the threats posed by bad actors and hackers, and how servers secure data while allowing app access. 🔒 Key Highlights: * Understanding Basic Authentication and its limitations. * Deep ...
Mastering Advanced iOS Development: Elevate Your Skills with Our Comprehensive Tutorials!
Просмотров 1329 месяцев назад
🌟 Welcome to the Advanced iOS Tutorial Channel! 🌟 👩‍💻 Are you ready to elevate your iOS development skills? Look no further! This channel is dedicated to providing in-depth and advanced tutorials for iOS app development. Whether you're an experienced developer or looking to refine your skills, we've got you covered. 📱 What to Expect: * Comprehensive tutorials on Swift * Deep dives into iOS fram...
Costs of Running an App
Просмотров 6 тыс.2 года назад
Learn about maintenance costs associated with mobile apps. If you have an app idea these will affect whether you can afford to keep your app or website running over time.

Комментарии

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

    Crazy helpful! I'm amazed it was so hard to find such a solid video. Would love to hear a bit about your process for release management next! How do you distinguish a staging build from a release build?

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

    code pls

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

    Amazing video! From time to time when I downloaded projects that weren't my own, i would run into these build configurations, but i never knew how they were created or their benefits. Well, now I'm more than enlightened, and you have my thanks friend, I appreciate your in-depth videos on these topics that are so important, and unless i had a senior dev on my shoulder to teach me the ropes, i would've never learned about these. Keep them coming, they are appreciated! <3

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

      @@DonatB98 glad I could help! Took me years before seeing these used out in the wild and understanding what they were used for too. But they’re very handy!

  • @jacobmetcalf717
    @jacobmetcalf717 29 дней назад

    This video is gold! Literally what I've been looking for on how to combine swiftUI views and the nav of UIKit! You're a life saver!

  • @luky.skrivos8865
    @luky.skrivos8865 Месяц назад

    Thank you for the video! Will there be any continuation to this concept?

    • @technecoding
      @technecoding Месяц назад

      I can sure make another one! What would you like to see? A more complex example?

  • @iLoveAppl3947
    @iLoveAppl3947 Месяц назад

    I hope they find a way to get rid of UIKit dependencies. We want just pure SwiftUI stuff

    • @technecoding
      @technecoding Месяц назад

      It will be interesting to see how navigation changes in upcoming releases.

  • @JunaidKhan-ny8tu
    @JunaidKhan-ny8tu 4 месяца назад

    Cool stuff ❤️❤️

  • @user-hi4nt9sb5j
    @user-hi4nt9sb5j 4 месяца назад

    Yuck

  • @xjamez1902
    @xjamez1902 4 месяца назад

    very good video, flawless explanations and reasoning

  • @user-hf7ef6nm4s
    @user-hf7ef6nm4s 4 месяца назад

    Love your video man, really helpful. I come from React Native where you had the ability to invoke a navigate() method on a navigation singleton to direct yourself around the app that I now miss 😅. It seems that in SwiftUi, it is quite hard to replicate that functionality (ie, navigation based on when some conditions are met within async functions which fetch the data needed to branch correctly). I tried settings things up in my app to do an enum like you had, but when the state changes, the app just abruptly changes between screens. I assume this is because I’m not clicking on a NavLink or some other primitive, but rather changing the screen based on the state and that seems to mess with the default transitions between screens. Is something like this possible where you navigate smoothly to another screen after, say, an API call finishes? I know in your example it seems to be all tied to a button at the end of the day but am curious if there is a way around that. Thank you!

    • @technecoding
      @technecoding 23 дня назад

      So if I'm reading this correctly, the issue you're having is that you're trying to navigation programmatically rather than from a button press right? Using the coordinator pattern in the video is technically programmatic navigation. But if you're not using the pattern in the video what you're seeing could be due to using a NavigationLink as you suggest. I'm planning a video that reviews SwiftUI navigation more in depth with some gotchas so maybe I can help answer your question in that video.

  • @TheMisterdecoy
    @TheMisterdecoy 5 месяцев назад

    Ok, its pretty nice, but what about customization of navbar - custom back button(icon), swipe-back gesture?

    • @technecoding
      @technecoding Месяц назад

      You would do this from the custom hosting controller. The one difference is for the custom back button. You need to set the default back button as hidden from the SwiftUI side and then provide your own custom button from the custom hosting controller. As for the swipe back gesture you would set your hosting controller to adopt the UIGestureRecognizerDelegate and then set the UINavigationController's `interactivePopGestureRecognizer?.delegate` to the hosting controller instance. I'll have to make a video showing it all. Thanks for the question!

  • @Rither88
    @Rither88 5 месяцев назад

    It's a good example of AppNavCoordinator for projects where still UIKit and SwiftUI in use. However this approach is overly complex for SwiftUI only projects. You've mentioned in cons section that root view is not part of navigation stack. Actually it is a part. And the fact that you can't change the root view is actually an advantage from clean architecture perspective. For example we have a login flow with it's own navigation. So it's incorrect to replace root view of navigation stack for login flow with view from another flow. It becomes hard to handle all possible scenarios. And of course any gaps in the logic lead to improper use of data an as result to bugs in the app. There are many solutions with their pros and cons for your problem. Coordinator pattern on of them. But it is very important to switch from UIKit thinking to SwiftUI and take all the advantages of the last one. I want to emphasise the implementation of the solution/pattern will be different for two different frameworks.

    • @marksiracusano9931
      @marksiracusano9931 2 месяца назад

      Are you guys child coordinators in your SwiftUI app? Like one for the login flow, another one for profile or whatever. Or are you just using a single coordinator that handles everything?

  • @fatiherdogan4795
    @fatiherdogan4795 6 месяцев назад

    Hey, I watched your 2 SwiftUI Authentication videos 10 times I guess :) and I learned so much about both dependency injection and coordinator pattern and also network calls and token storage. Thank you for every minute that u spend to make this video I have a question about appnavcoordinator: when the project gets bigger and bigger it starts to get so large can u make an example how can we avoid that. Also if u open an udemy Course I would definitely join. Thanks for everything again <3.

    • @technecoding
      @technecoding 6 месяцев назад

      I'd be happy to make a video like that! I'm in the process of determining the next series and scalability is one of the topics. If it's not the next one it will still be one in the future. And I've been looking at options to host a full fledged course on a class site (or even my own). So I will keep everyone posted on that!

    • @TomaszSky
      @TomaszSky 2 месяца назад

      same here

  • @fatiherdogan4795
    @fatiherdogan4795 6 месяцев назад

    I get this error when I try to implement coordinator pattern SwiftUI/NavigationColumnState.swift:560: Fatal error: 'try!' expression unexpectedly raised an error: SwiftUI.AnyNavigationPath.Error.comparisonTypeMismatch is there anyone who can help?

    • @fatiherdogan4795
      @fatiherdogan4795 6 месяцев назад

      I solved I guess using navigation stack in navigation path was not a clever thing to do 😅

  • @Croleack
    @Croleack 6 месяцев назад

    I did everything like you, but I made a mistake somewhere, the code compiles, but does not work, you can send me the source code of the project GITHUB. Thank you for the lesson

    • @technecoding
      @technecoding 6 месяцев назад

      Could you be more specific? I might be able to point you in the right direction. Right now I'm working on getting all my content together and hosting it in a class site. When that's done I'll shoot over the link to any source code.

  • @chrishammers8723
    @chrishammers8723 7 месяцев назад

    I haven’t done the delegate pattern in SwiftUI. Did it all the time in objective c and UIKit. It will be interesting to see how you utilize it in the end.

    • @technecoding
      @technecoding 7 месяцев назад

      It's definitely something I haven't seen others do but I've found it's useful especially when coming from a UIKit background. Video should be out over the weekend!

    • @chrishammers8723
      @chrishammers8723 7 месяцев назад

      @@technecoding yea exactly what I figured. What’s odd is we used it for backend code before as well but just stopped that pattern when going to SwiftUI. Can’t wait to see

  • @cryptogramps
    @cryptogramps 7 месяцев назад

    Hi, do you have a GitHub repo of this so we can follow along? Thanks

  • @DonatB98
    @DonatB98 7 месяцев назад

    Hey man, remember your reddit post and here we are, glad that you cam up with these tutorials and just in time for a similar problem I'm having. In my app I've set up interceptors to get new access tokens (10 min duration) and get new ones. It all works well, but if the access token is expired and I make multiple calls, even though I fetch the new access token correctly, it logs me out because of 401 and I can't seem to know a solution to this race. It's a similar HTTPClient like yours but without the async/await, with closures instead. Any tips? Also sorry for the long question just seemed a good time with the video posted :D Thanks for the content, great stuff!

    • @technecoding
      @technecoding 7 месяцев назад

      Ok so it depends on a few things. But if I was going to create that from scratch here is how I would likely handle that. The simplest way would be to check the expiration before you make the request and if it expires within the next 60 seconds (or whatever buffer works for your case) then automatically fetch a new access token before making your request. Of course this is more boilerplate. 

In your situation it sounds like multiple requests are being made within a short timeframe. Solving for that is a bit more complicated. Ideally what you would want is to have one object that would handle interception for all network requests and proxy them with access tokens as needed. The reason for this is you could use the observer pattern that each pending request could use to observe any existing token fetching request. Then after the token fetch request finishes you can either log the user out (and cancel pending requests) or publish an update, with the new token, to all of the requests that are observing the token request state. The idea is that your interceptor would “hold onto” the requests or some Publisher/Observable/“list of observing objects” that it can then propagate to the objects that need it. Depending on your needs you could also make the functionality publish changes to observing requests in the same order that they were called. Off the top of my head you MIGHT be able to use Combine or RxSwift with the “zip” functionality but I’d have to double check to see the order of operations with that. Personally I always rely on the 401 response to handle token refreshing rather than checking the expiration date (although I ALWAYS build expirations dates into the JWT in case I want to change that in the future). But my architectures usually rely on one “syncing” endpoint that I custom make on the backend to do most of the requests. Unless I have niche functionality I try not to rely on pure RESTful calls because you can easily get into a situation where you have to chain requests for each resource and each request still has to solve for connectivity edge cases. But that can be a video for another time :)

  • @nananananadev_
    @nananananadev_ 7 месяцев назад

    Your network layer is so clean and readable👍. I'm waiting for the next video.

    • @technecoding
      @technecoding 7 месяцев назад

      Thanks! Next video coming this weekend. It will be the final UIKit video. After that I'll be showing how to write the same app in SwiftUI.

  • @akramkhan009
    @akramkhan009 7 месяцев назад

    Good tutorial... Keep posted

  • @asdasdaa7063
    @asdasdaa7063 8 месяцев назад

    Please make a video showing possible costs for AI powered apps. So thing for example RAG (retrieval augmented generation) so on.

  • @rayreadyray
    @rayreadyray 8 месяцев назад

    Thanks for the tutorials. I learned a bunch. When can we get part 5 🙏

    • @technecoding
      @technecoding 8 месяцев назад

      Next video coming out this week!

    • @rayreadyray
      @rayreadyray 8 месяцев назад

      @@technecoding Sweet! Super helpful and timely for myself.

  • @byeebyte
    @byeebyte 8 месяцев назад

    🎯 Key Takeaways for quick navigation: 00:53 💻 *Every app incurs server costs to store and manage data, often in the cloud.* 02:18 🌐 *Each interaction between the app and the cloud, as well as the cloud and the database, involves costs, albeit usually small.* 03:30 💡 *Scaling an app to more users increases cloud requests and costs, emphasizing the need for a solid business plan.* 04:15 💸 *Simple apps may have server costs as low as $25 per month, while more complex ones, like those involving customization, can exceed $75 per month.* 05:18 📹 *Complex apps with features like video streaming can lead to higher costs, with expenses increasing as data is sent over connections, akin to utility usage.* Made with HARPA AI

  • @hijv
    @hijv 9 месяцев назад

    Awesome! Good stuff man we need more tutorials like this!

    • @technecoding
      @technecoding 9 месяцев назад

      Thanks! More to come and looking forward to making them!

  • @NathanBudd
    @NathanBudd 9 месяцев назад

    That was quite the setup! But for somone that's not used Django before, everything was clear and easy to follow. Looking forward to part 3!

    • @technecoding
      @technecoding 9 месяцев назад

      Thanks! I really appreciate it. Part 3 coming out in a couple of days!

  • @robsinspiration
    @robsinspiration 9 месяцев назад

    Very easy to understand, thanks

  • @NathanBudd
    @NathanBudd 9 месяцев назад

    This was a useful video and well presented! I'm coming form a web (Laravel) background, so I'm familiar with the JWT etc, but the bit about Key Chain and User Defaults is very handy! Look forward to seeing the next video.

    • @technecoding
      @technecoding 9 месяцев назад

      Thanks! Yeh if you have some backend experience you should do fine with much of this stuff. Is there any specific content you would like to see in the future outside of this authentication series?

    • @bytesizedscreencasts
      @bytesizedscreencasts 7 месяцев назад

      @@technecoding Would Love to see designing a more large scale architecture app. May expand this series with having different flavors of the App with Dev, Test and Prod app targets using different endpoints. Unit and UI Testing including authenticating. More about Targets, Schemes, XCode Build settings that one should know.

  • @jigmetdadul335
    @jigmetdadul335 9 месяцев назад

    excited for the videos!!

    • @technecoding
      @technecoding 9 месяцев назад

      Thanks! Other than authentication is there any specific content you want to see next?

  • @grady_young
    @grady_young 10 месяцев назад

    Is that $25 (or $75 or $200) per user? Or is there an assumed amount of users?

  • @muhammada.5050
    @muhammada.5050 11 месяцев назад

    More videos please.

  • @saimsahi6597
    @saimsahi6597 Год назад

    that’s what i was looking for great video

  • @procrastinateXrok
    @procrastinateXrok Год назад

    Where can I find a simple cloud server for a prototype app? $25/month

  • @codegreenie3429
    @codegreenie3429 Год назад

    My app sends JSON data only back n forth. It costs me just $200 per year. I also pay around $15 yearly for emails. Push notifications is Free ND I make

    • @shadpinthiere2472
      @shadpinthiere2472 10 месяцев назад

      Did you hire a developer if so, at what cost. If not how did you begin?

    • @grady_young
      @grady_young 10 месяцев назад

      How many users?

  • @AnujSharma-cp1bd
    @AnujSharma-cp1bd Год назад

    Hey.. great video.. Out of curiosity, what would be approximate per month server costs of a short video platform like tiktok with around 50k users (posting 2 videos of 1 minute each everyday) ?

  • @jomfawad9255
    @jomfawad9255 Год назад

    I'm building a livetsreaming app similar to tiktok and bigo live, the server cost i already know but my problem is with app maintenance in case of bugs and updates, how much would such an app cost if capped at 10k daily users?

  • @lsr_talkshow
    @lsr_talkshow Год назад

    You are very good at teaching, more of this videos, I also want to start up my app business, but I don't know how to go about it

    • @technecoding
      @technecoding Год назад

      Thanks! Much appreciated! I do plan on making an entire course on this towards the end of 2023. But where are you currently on this journey?

    • @sajanshah6664
      @sajanshah6664 Год назад

      did you make any progress? i am trying to do the same

  • @andriy3693
    @andriy3693 Год назад

    Good video! Nice and clear explanation. Would you be able to provide a breakdown of ALL costs starting up a mobile app business?

    • @technecoding
      @technecoding Год назад

      Great idea. And sure, I can work on getting this out!

    • @kellybrian3218
      @kellybrian3218 2 месяца назад

      ​@@technecoding Hello would you, if possible, do a video explaining costs for apps that includes APIs like maps, payment, data etc Thank you Great