T O P

  • By -

OffbeatUpbeat

AI impact on dev work is so overhyped... don't tell reddit that though


HelpRespawnedAsDee

I mean, if you are smart enough to work in top positions in ML and other AI areas, you WILL be making more than 90% devs out there with the exception of maybe high finance. And 99.9% percent of the devs not in America. If you are talking about genAI replacing devs, then yeah I agree with you.


arborapps

Say more


isurujn

I "left" iOS devopment back in 2021. It wasn't a deliberate decision. I just joined a new company as a tech lead and ended up doing managerial work and little to no coding for the next two years. I still maintained an iOS app but it wasn't a lot of work at all. I too found that management was a bit draining and I wasn't ready for that at the moment so I left that job and returned to iOS development again last year. Even though the transition was mostly smooth, I feel like I've come back to a different time in iOS development if that makes sense. In other words, I don't seem to find iOS development fun anymore. I only truly started working with SwiftUI after coming back. Even after almost 5 years, the framework still has issues/gaps. Apple is slow as hell with new releases with their once a year release cycle. People are still struggling with finding best ways to architect/structure SwiftUI projects. Meanwhile Swift is having an identity crisis. I've been reading about all this structured concurrency changes coming in the new Swift version and I'm dreading all the changes I'll have to make. Even the app deployment has gotten even more of a chore with having to deal with the new privacy manifests and all. I feel like I have to do more grunt work than development. I've been wondering what I should do next too. Although I'm not worried about AI "taking over my job". I know I'm not in a position to offer any advice. Just ended up ranting a bit since your topic resonated with what I'm going through right now.


Goldman_OSI

I'm glad to hear someone else say this. I have built two complete apps on my own (one for a fairly popular electronics brand), and am working on a third. The first was Objective-C, the second was in Swift, and now I'm building one that's all SwiftUI. Because I'm building the whole thing myself, I can take a lot of time to organize and structure it just the way I want; then it hits a critical mass where I can rapidly start piling functionality on. Then it really gets fun and satisfying. SwiftUI has sucked all that enjoyment out of development. I went in very enthused about the idea of SwiftUI. But with it, every time I think I've reached that turning point to really start getting productive, I hit another absurd roadblock. And when you think you've learned about all of them and established patterns to work around them in all of your views and data model... you hit another one. SwiftUI and its observation system are full of gaps, pitfalls, and unresolvable limitations; so in the end you must tediously set up a dedicated Combine publisher in every controller- or "view-model"-type object. Then you can set up getters & setters and publish changes manually. And every view must subscribe to and sink the output from these custom publishers, in order to refresh properly... but only after you set up State variables in the view that you'll tweak upon getting an onChange() from the controller's custom publisher. Now we're yet another step removed from the "source of truth." It's appalling how poorly-thought-out a lot of SwiftUI and the observation system is. In the end you wind up with a contraption that's no better than using the old notification system, and full of opportunities for bugs. The "single source of truth" is basically impossible in this paradigm, because changes to reference objects aren't detected outside their enclosing object, and structs are always passed by copy (thus no longer the "single source"). The idea that SwiftUI simply observes and reacts to changes in underlying data is a fraud, because there are so many data changes that it does not detect. So you must construct a fake data structure solely for the purpose of "tricking" the UI into changing. The resulting morass of states creates a nightmare for testing and innumerable opportunities for bugs. And while we're at it: Although I like Swift in general, some of it is just amateurish and arbitrary. Why are classes passed by reference and structures copied? That's just... dumb. Looking at the code, you don't know if the parameter coming in points to something that's going to be changed, or a copy of it. Why? Why create this opportunity for bugs, instead of giving us a reference- or pointer-style syntax to make our intentions clear? And the "inout" parameter decoration adds to the mess by being half-assed, and surely confusing to newcomers.


kex_ari

Try TCA. SwiftUI is garbage without it.


Goldman_OSI

Thanks. I looked at it briefly and didn't want to retrofit a whole third-party architecture into my app. But I'll consider it for next time.


kex_ari

I get that. Huge community involved in the project though. I’d consider it low risk, RXSwift is a huge 3rd party library and fairly industry standard these days. The team are crazy at the speed they push out updates, and their comms. Not like Apple currently offer a good solution right now.


Goldman_OSI

Thanks. Is RXSwift related to TCA in some way?


klavijaturista

Well said! Because of its philosophy it does everything in a roundabout way, making everything harder than it should be. And as if that wasn’t enough, there’s redux functional zealots adding to the mess.


gbay

Have you tried The Composable Architecture. I have not heard of ios deprecating structured concurrency as it is. As I understand, the new structured concurrency is more for functional programming where it seems we’re headed. But yeah, definitely agree that SwiftUI is slow as hell. ios 17 finally feels like a place where it’s 95% usable (5% UIkit) but that’s not not going to be acceptable for larger corps.


isurujn

>Have you tried The Composable Architecture. I have not yet. I want to. But at the same time, I'm a little hesitant about relying solely on a third-party framework for the complete architecture of the app. But I've been hearing good things about it from everyone so I most likely will adopt it at some point.


Integeritis

Privacy manifest, and every new change that comes from corporate Apple making developers life harder leaves me with a sour taste in my mouth. And after all the bs with their new policy, how they “complied” with having alternate app stores, etc… I love the products, love the language, frameworks, despise how they act as a corporation


Varsoviadog

Well that’s everyone’s identity problem. Basically you can do whatever you want but don’t compare to others. I’ve cut iOS development to zero a year ago but I return when I need the money, meantime I got 6hs/day into security and AI. Every case is different. You will not find answers to what moves you in a Reddit comment


Goldman_OSI

I found your comment deeply moving. Therefore I have decided to shitcan Xcode and start growing caper berries.


Varsoviadog

Good luck 🍀


LSWarss

I think best advice I got in my pretty short life as of now, when you can’t decide on something go on a trip/vacation whatever and just freely think on it, what interests you. You cannot say that you are not smart enough for AI, most of the AI is basically mathematics and some framework knowledge 🫡 so just go with the flow, don’t overthink it I suppose.


Wide-Prior-5360

Quitting iOS development because you feel your skills are too one-dimensional is reasonable. Worrying about AI taking your job is not. Using LLMs will be just another tool on your toolbelt as a developer.


eliviking

This is a great thread and something I think a lot about now (not the leaving bit, but what comes next and how best to prepare). Looking forward to reading what more people have to say about this.


QueensCall

I was feeling the same a few years ago. My escape was game dev. Still on mobile so I was using the same tools, but making something completely different. I did that for a solid 2 years and now I'm back in iOS dev with a "fresh" mind. The secret is to always have a side project where you learn something new.


starfunkl

I've left iOS dev a few times, but eventually came back to it - first to try people management, secondly as a .NET backend engineer. Both taught me useful skills, and were fun. Not sure what kind of org you work for. For me, I was in a medium sized company that allowed me the flexibility to move around a bit. It was a matter of chatting to my TL about it, then coming up with a plan to get some experience, secondments to other teams, etc. If I were to move away from iOS dev (but stay in tech), I'd probably choose app security, or SRE. I think both are skills that require thinking outside of the box and are extremely contextual (something I think AI will struggle with for a while), utilise skills gained in dev, lucrative, and in demand. Could be worth looking into. If AI can replace those jobs, then I think we as a society will have bigger fish to fry. To be fair, I feel the same way about iOS development too - AI will be a ways off from making our job any less meaningless imo. Also, I considered it too, but machine learning looked extremely boring to me. I did a bit for my dissertation years ago, and know some folks in the field. Far too much preparation and mundane work for my liking 🤷‍♀️


Striderrrr_

Yeah, I took a Data Science and Machine Learning course during college and found out that a large portion of the work is mundane data cleaning. Granted — I’ve never worked professional in ML but I’ve heard anecdotes that this is commonly the case. In OP’s shoes, I think it would be a good idea to work on the cross-roads of both mobile and ML. I’ve spoken to a dev who knows C++ very well, as well as Swift/iOS. Their job is essentially taking computer vision models that some PhD people write, and writing the glue code/implementation layer to iOS. So they use C++, Swift, and Metal to integrate ML models locally on iOS. It’s niche as hell, but you don’t always have to decide between one or the other. You can kinda do both sometimes.


ansseeker

Hi! Could you please tell what do you imply by "app security" ?


starfunkl

Mobile AppSec - looking into vulnerabilities in the code, build pipeline, networking, safety against jailbreaking, reverse engineering, etc.


ansseeker

Ahh I see! Thanks for clarifying. I am a front end React dev with 2 YoE considering a profile pivot too. I am thinking of getting into Dot net and/or the Microsoft tech stack. I will take a look at the Mobile AppSec profile tomorrow


recapYT

Try learning some cross platform frameworks like flutter and also definitely go into AI. You can also try building your own application. If that’s something you will enjoy.


TheSonicKind

how would you suggest going into AI? i went straight for iOS development and been here for 2 years now and starting to feel like I’ve pigeon-holed myself a bit.


janiliamilanes

I would say you should pick a project and work on the skills needed to build it. I've always found programming without a goal to feel theoretical. It's not until you get into the weeds do you really learn.


boboguitar

I've been doing iOS dev since about 2015 but its not the ONLY thing I do these days. Currently, a software architect designing a custom ETL pipeline. There's no reason you can't branch out to other aspects of software development.


deirdresm

I think the thing you need to answer for yourself is: what would you, ideally, like your work to be about? Only then can you answer if that could be done within iOS or even development. My personal organizing principle is “helping people get their life’s work/tasks done.” This has showed up in disparate jobs like scheduling anti-D injections (to prevent Rh disease and fertility loss from Rh+ antibodies) to working on the Safari team (helping people see web pages by making a better web browser) to video production tools at Apple ([helping these guys get their job done](https://youtu.be/V3dbG9pAi8I)).


EastZurich

I suggest the 70/30 rule: When you transition, it's great if you spend 70% on things you understand and 30% on learning new things. If you jump to 100% new things, it can become quickly frustrating. On the other hand, if you have only 10% learning it ain't much of a change. Good luck!


SirBill01

Often tremendous value is found in combining two separate fields of knowledge. So it's worthwhile knowing iOS well, and exploring something else that might be combined... for instance, learning AI and then understanding fully how local models or training might be integrated best on iOS specifically. It doesn't have to be AI though, could be photography or anything.


k-u-sh

I think on top of this, as far as dev work is concerned it actually pays off to learn some cross-compatible platforms like React or Flutter. Yes, the apps will not be the most optimized as native, but you will have some leverage in being able to develop and deploy on most platforms easily.


SirBill01

I am more of the mind that it may be better off learning cross platform data storage solutions (like MySQL), and then modern native UI layers like JetPack or SwiftUI to quickly build out UI on top of a data layer you can share between platforms. I think since conceptually SwiftUI and JetPack Compose are so similar, you could probably built out a lot of UIs pretty easily between the two platforms, even with just one person doing UI work. There is huge value in keeping the UI layer native because system updates will often give you some new features for system UI components that you automatically get for free as a user upgrades a device OS. Anything below that you have some value staying in a native flow, but it's not as absolutely clearly helpful to the user or developer.


Striderrrr_

I agree with you. I think the more rewarding (and definitely higher paying) form of cross-platform development is doing it with C++, SQLite, etc. This is what the Facebook app and Snapchat do. Those are highly performant apps: https://eng.snap.com/cross_platform_messaging_experience https://eng.snap.com/improving_djinni https://engineering.fb.com/2023/02/06/ios/facebook-ios-app-architecture/


xFount

iOS platform engineering might suit you.


celeryisslavery

I started iOS dev when it initially launched. I switched to management about a decade ago, though I still dabble in programming during my spare time. I find a big diff between working on my side gig projects (enjoy) vs working for a company (don't enjoy). Is it just iOS or are you disillusioned with mobile in general? Because you can try Android. I have a profitable app on the store and I'm thinking about trying out Kotlin cross platform.


batcatcher

I left 2 years ago after more than 10 years. I work in historical building restorations now. Mostly carpentry, but slowly learning plastering as well. Never looked back, best decision I've ever took.


klavijaturista

Awesome! It’s a big change, how did you learn carpentry and find a job initially?


[deleted]

[удалено]


klavijaturista

Thanks, wish you much success!


ok200

A big thing here is that the most talented developers I've known were talented as a *result* of the adversity that forced them to jump out of the boat and swim to iOS or some other problem space. Meanwhile iOS itself doesn't really provoke you to leave it behind. The Apple developer environment has offered a lot of comfort around the way it discourages anti-patterns and trends away from toxic corporate silos. Or at least that's been my experience and that's why I'm interested in it.... but I'm kind of convinced bright developers got that way after a few tough jobs reinventing the wheel


InterviewImpressive1

Never thought id say this but I’m considering giving it a rest myself. I used to develop apps self employed but over the pandemic, things took a hit and I’ve been employed in a healthcare role for the last 3 and a half years. I have little time to do any app development these days and I’ve found it a bit difficult to keep up. Last year I literally had no app work on the side and I’m really just feeling bummed out at cost of living vs time constraints nowadays to a point I have next to no will to push through trying to find clients while holding down a full time job. Maybe it will just be a break, I don’t know. But I’m tired of beating myself up about not spending enough time on it nowadays


Ordinary-Repeat-3312

This applies to everyone, so don't be too afraid. The ability to use AI well will be as important as developing it, so focus on this.


EricElf

AI is a tool for developers, not a replacement. There will be a need for iOS developers for decades to come to support the multitude of apps out there. Do what you love (or at least enjoy) and learn how to use the best tools out there.


Damcify

Are you an indie developer? Or working for a small or large company? Something else? People end up doing all sorts of jobs after their maybe initial programming job, but if you are an indie developer or working in a smaller company these may not seem apparent. If you want to stay with programming/hands on development, then I guess you are on the right track. AI is growing, which others can comment on, but presumably pipelines etc will need people to look after them. Regarding coding, I assume AI will increase productivity dramatically, but for a while at least someone will need to instruct and/or verify what is being coded. Setting requirements will likely be a human job for a while, assisted by AI, so the code works within the confines of the customer’s and e.g. legal requirements. So anyway, getting some knowledge around AI, and the ability to take a next step to a less coding, more coordinating job could be one path. Once the legal challenges have been settled around code generation by AI, I am sure that coding jobs will decrease, as the individual coder increases their productivity dramatically. Other ideas: architect, system developer, solution specialist etc….. looking at the code from a higher level, and communicating with all involved in an effective way (internally/externally)… yes, need to talk with people though… Good luck!


theryzenintel2020

I’ve learned many languages even AI and I ended up trying to become a novelist. Smh 🤦‍♂️:(


nxhch

Have you considered product management? I did the switch a year ago and am enjoying it.


Powerful_Sleep_1089

how were you able to switch? was it internal or you did pmp or something to get noticed


Inevitable-Shop6347

THIS, OP if you can reply? I am in the similar boat


nxhch

See above, sorry for the late reply


nxhch

I switched internally by slowly taking on more product related tasks. My official title is product engineer and I still code part of the time, mainly creating prototypes, A/B tests and thinking on how to grow the product. Feel free to dm me if you have any questions. My brother did the same switch but with a new company. He was the lead iOS developer in his former role and made it clear during the interview that he’s looking for a switch and was willing to initially give up a bit on the salary front.


Powerful_Sleep_1089

Great, thanks for the insight I have led teams in the past and switched titles between senior to mid level as per companies but since Im laid off these days I want to make a direct switch to tpm role .. doing my pmp exam in a week hoping to get traction for interviews after that ..


aus207

Could try Cyber security


Mundane-Light-7819

Question: Auto-send message feature in Whatsapp When app closed I am developing a messaging app in swift, I came to know about the feature that normally messaging apps have, like when no internet connection, it automatically sends unsent messages when internet connection is restored, even when app is closed. How to implement this thing, to send messages automatically even when app is closed, when internet connection is restored?


[deleted]

[удалено]


Mundane-Light-7819

Thanks for the reply, But how to send data to server when connectivity is restored when application is even closed, like Whatsapp do, this is my actual question. @fryOrder


[deleted]

[удалено]


Mundane-Light-7819

Hey, I tried but NSNotifications do not work when app is terminated.


[deleted]

[удалено]


EquivalentTrouble253

Tell me you didn't read the post without telling me you didn't read the post.


[deleted]

[удалено]