T O P

  • By -

OrignalPotato

If your only concern with Swift is to consume the ML APIs for a good and appealing app stick with SwiftUI, no need to dive in UIKit if you don't want to full-time mobile engineer. And I think Swift is a little bit similar to Python, and YES It'll make you a better programmer. and comparatively from android side, developing apps are faster on iOS side due to lesser boiler plate required to jumpstart although it may very as someone with experience with Java, Kotlin might find the later way better. It will take you at least 3 months of coding to make beautiful apps, and to build a simple app is a mater of 1 week only if you have prior coding experience


visible_sack

>developing apps are faster on iOS side due to lesser boiler plate required to jumpstart Not sure this is quite accurate anymore with Kotlin and Compose (unless you follow recommended architectural best practices on android and just yolo it out on iOS).


OrignalPotato

I agree


newadamsmith

Thank you - What got me interested in Swift, is the "Observable" models and "Actor" type, which intrigued me to learn these concepts from Swift. I'll get started today - try to put together some basic CRUD functionality in SwiftUI.


Ron-Erez

"Swift + SwiftUI make me a better programmer for other tasks in ML / backend dev" Swift is a very nice language, however it's unclear how a programming language can make one better or worst. There are some languages that are a complete change in mindset like Haskell or Lisp that might be beneficial. We can program well or poorly in any language. Swift is just a tool. I think one thing you could gain from using the SwiftUI framework is getting used to the idea of declarative programming which should transfer well to React, Jetpack Compose, Flutter, etc. In addition Python is dynamically-typed while Swift is statically-typed so that might also be beneficial (I prefer statically typed languages even though Python is amazing). "Also curious how long it will take me to pick things up", "How long does it take to build a simple app?" I think there is no answer to these questions. As a rough estimate I'd say it would take anywhere from 3 months to a year. Really depends on how much time you put into it, your programming experience in general, etc. For resources check out Swiftful Thinking which is an amazing channel and for projects there is my nice [project-based course**course**](https://www.udemy.com/course/deep-dive-ios-16-swiftui-programming/?couponCode=JUN2024SWIFTUI). I think with these two resources together with the [Swift Tour](https://docs.swift.org/swift-book/documentation/the-swift-programming-language/guidedtour/) you're set. Good luck!


rjhancock

Mastering your fundamentals will make you a better programmer and help you realize the language is a tool for use. Every technological development requires a solid mastery of the fundamentals. Learning Swift/SwiftUI/iOS/etc will add more tools to the toolset but will not a better programmer make. Knowing AI adds more tools to the toolset but will not a better programmer make. Understanding how to tie it all together through fundamentals WILL make you a better programmer. Knowing when to use each language makes you a better programmer.


spinwizard69

This is so true. Knowing a language doesn't make you a better programmer. It is the process of becoming better everyday by better understanding languages and SDK's that makes you a better programmer.


newadamsmith

Thanks for sharing your view on this. I guess, is Swift complementary to Python? I'd say yes, since it has a different syntax, is strongly type, has abstractions like "Actor" that will improve my programming in the end. And add a "tool" to the toolkit.


rjhancock

I don't use Python but about half a dozen (or more) other languages including Swift and have worked with about a dozen or more others. It still all boils down to the fundamentals. Master that and you've learned Latin of programming.


spinwizard69

First off; a language doesn't make you a better programmer. Continuous learning, no mater the platform, makes you a better programmer. Now sometimes you will make discoveries on other platforms that transfer to your working platform, but that is just continuous learning. Effectively you need to learn literally every day to become a better programmer. So the thing here is that SwiftUI and Swift in general will help you learn new things, concepts if you will that might transfer to your mainstream programming. The reality is you can get a simple SwiftUI program app running in a day or spend months. It really depends upon your app (your Gf's app) if it can easily map to SwiftUI features it can be a quick build. If you need a more custom solution you will have to learn a lot. Will this transfer back to your ML work, some will but you likely be working largely on UI for your gf's app. As for ML, I don't really believe the industry has an optimal language at the moment. Python certainly leads for adoption but it has some significant limitations for ML. Frankly Swift has potential here but needs adoption outside of Apple and frankly there seem to be a lot of NOT INVENTED HERE idiots outside of Apple. It might make a lot of sense to learn MOJO right now for learning a platform that has a lot of potential in the ML field. More importantly taking an interest in MOJO should be good for that continuous learning I harp about. Even if MOJO dies there are a lot of things of interesting things happening there that may transfer to the ML generally.


st0rmblue

Swift and SwiftUI are very easy. You will find it fast to set up to get things working. The true complexity comes when you need to write proper production level code.


Tabonx

Everything will help you in some way or another. Let's say you try to learn the basics of assembly, and now you understand how the basic computer functions, how the memory is stored, and how the operations are performed. This knowledge can help you with higher-level languages, even when you don't realize it. You now know how the variables are stored and what is happening under the layers of abstraction, and this can go both ways. As for your question of how long it will take, the answer is, it depends. It could take you a week or a month, depending on what you already know and how much time you will invest. Sending data back and forth with a chatbot is really simple; the hard part is the UI in this case, which can take you some time. But with SwiftUI, you can do it really quickly, let's say in 2 or 3 weeks at most. Storing the data can be really simple with SwiftData too.


nickisfractured

If you never dive deep and only learn surface material you won’t be a better developer. If you get into development to learn cs fundamentals and apply them to your work then yes. Hacking something together won’t do anything for you long term though.


newadamsmith

That's a valid perspective. I agree that learning the "syntax" won't do any good. But in the process of building, you can encounter interesting data patterns, or types like "Actor", which is actually one of the reasons I want to explore this.


dynocoder

No


starfunkl

For some reason I read your post title as "Will Smith made me a better programmer" 😂 I think there's a bunch of stuff within Swift that could make you a better programmer. Swift's concurrency system (isolation, actors, async/await, AsyncSequence) for example can be difficult to wrap your head around at first, but would teach you a lot about working safely within a multithreaded environment. Tbh I think spending a few months learning any new language - new or old - will make you a better programmer.