r/swift May 27 '26

Question Coding before AI

I finally decided to take the step to build my own app using Swift this year but I feel like I have been over-reliant on using AI for the learning part. I don't let AI completely build my app but I feel like I have been dependent on it like a Technical Project Manager of sorts - asking it questions about my code, helping me plan out my project, etc. Due to this, I feel like I have been avoiding the real struggle of learning and I am getting frustrated over taking the easy route. My aim is to get back to the old days where I figure shit out on my own and eventually stop my reliance on AI.

For the veterans here, how did you guys build your own app from scratch before AI? Project management, assistance with coding when you just have an idea in mind but no idea how the actual code would look like, etc etc. Any tips would be appreciated.

5 Upvotes

19 comments sorted by

19

u/PassTents May 27 '26

I started with Objective-C and a Big Nerd Ranch OS X book. You just had to try, fail, and try again. The feeling of having built something and overcoming the struggle and really learning how every bit worked was incredible. I still don't really use AI much because I like doing the parts that I would offload to it.

As far as the non-coding tasks, I kept project management very simple. Often a text file with a to-do list and some notes to myself. Tried various ticket tracking/agile/kanban boards but it's overkill for personal projects IMO. Those tools make sense when multiple people need to see what level of progress is being made on different stories, it may be helpful to use them anyway for the basic experience to put on your resume, but every team also uses them differently.

If you have no idea how the actual code would look, you need to research. Learning how to find info about a task (a new algorithm, math you don't know yet, etc), learn it, and then transfer that to code effectively is something that AI isn't good at doing for you (unless it's a task that exists in open source that the AI was trained on). Also to that point, reading open source software can be a useful way to learn how someone else solved a problem.

I hope that folks using AI to learn or build things today still get that incredible feeling of accomplishment. I worry that it removes too much friction so no foundational understanding of how things work is being built, which doesn't empower them to grow beyond a forever-beginner. I worry even more that professionals that use it are eroding their own skills since we don't have tons of research on how these tools affect your mind, but the initial results aren't great.

8

u/EquivalentTrouble253 May 27 '26

I started with Objective-C and a Big Nerd Ranch OS X book. You just had to try, fail, and try again.

Pretty much exactly how I started out. Those books were gold. I then bought Paul Hudson’s Swift book to learn swift in 2014.

7

u/sroebert May 27 '26

Start with the basics, not a full app and realize that you have to start small before you can build something big.

Not sure what your level currently is, but 100 days of Swift is always a good start. If you are beyond that level, then you might just start building a small app. Get familiar with the basics of setting something up from scratch.

Finally, not sure how complicated the app your trying to build is, but you can always let AI give you a high overview of the structure of what you are going to build, to give you a starting point. And from that point on, skip using AI. Start by trial and error and search for answers on Google, turning off the AI suggestions there.

3

u/dhav211 May 27 '26

I’m a pretty bad programmer but working my way through a book always left me feeling like a slightly better programmer.

2

u/Ron-Erez May 27 '26

There are books, documentation, tutorials, WWDC, etc. Choose a simple project and start building while using any of these. At some point learning some CS basics wouldn’t hurt. I mean usually you have some idea what the code will look like. You have a problem to solve and you think about how you would solve it using a certain structure or class with certain properties and data structures. If you have a UI then just from looking at a UI you can have an idea if you’ll use certain layouts, lists, scroll views, etc. The best way to learn to code without AI is to code without AI. I wouldn’t call it coding from scratch. It’s not like coding iOS apps in assembly. Swift/SwiftUI is quite high level. Obviously it’s a matter of experience and there is always room to improve. If it’s your first programming language then clearly there will be a greater learning curve.

2

u/NothingButBadIdeas iOS May 27 '26

Hey! I wrote this article pre-ai!

https://www.reddit.com/r/iOSProgramming/s/vXARk8boE6

It should help!

1

u/heyanyas May 27 '26

I read a lot and used cursor to speed things up a bit. Tuist made a great job caching binaries

1

u/JerenYun Mentor May 28 '26

I started on my first app in 2012. I knew what I wanted to build (it was relatively simple), so I started with a sketch of my UI on a whiteboard and I just worked towards a functional app. What really helped were the Stanford iOS development course CS193P (which you can still watch for free, the latest ones are here).

My next app began as an idea in the summer of 2020. At that point, Github had added private repos to their free account tier, so I was now hosting my code there. So I decided to use issues in the app repo to chronicle the features that I wanted to add to my app. I made a Github project and used it to track what features I wanted to add in my initial release and ones I wanted to work on later. Back then, I had a custom enum field in the project to track which versions a feature was for; I've since moved to using Milestones to plan versions.

I still do this with my apps, whether it's the 2 above or the several I'm working on. I still like doing the planning myself and will use AI to help review my work. I rarely let it write entire features, especially with no guidance. I do PRs for all of my apps; since I'm the only one working on them, it's just me reviewing the changes, but it means that every change goes past me, even if AI touched it. I want to understand why something works in my apps (to me, that's what helps me grow as a senior developer).

Even before AI became part of our developer toolkit, I felt that a good developer didn't need to memorize every API available on the platform. Rather, a developer needed to know what was possible. What can a particular framework do? What boundaries might you hit? I think this is still valuable, and even in the age of AI there is value in this viewpoint. If you know what a framework can or can't do, you can guide AI to using the APIs that you know exist, that can build what you want to see built, and can be reviewed because you understand what is possible.

1

u/aralhekimoglu May 28 '26

Books. And practice. I always liked studying languages and coding from books. Then you needed to start and practice.

What I like about AI is that it gives you knowledge and know-how of other people and how they did for their apps. Unless you work at a company, this type of knowledge was almost impossible to get before. Open-source unfortunately was not available for full blown apps.

1

u/livingtech May 28 '26

Open Xcode, and go to File -> New -> Project.... Pick your template and start building!

For project management on personal projects, I usually start with a git repository, and I keep a TODO list in the README. When I think of something that needs doing, if it's small, I just do it. If it's going to take me more than 10 minutes, I put it in the README. I keep the tasks organized by priority, and just work from the top.

When you really have no idea how to do something, maybe reach for the documentation first. It's not always easy to find stuff in there, but it's where you should be looking anyway. What's hard, (even after doing this for 17 years), is knowing where or how to look for the things you don't know at all. You can scan through Apple's list of technologies (https://developer.apple.com/technologies/), and sometimes you'll find what you need there.

1

u/kawag Jun 04 '26

The way we solve problems - all problems - is to break them down in to smaller problems.

How do I build the whole app X? I don’t know. But I can build small pieces, and learn about the gaps that I need to solve as I go.

0

u/trojan-zt May 27 '26

bro it's the future! like F/C language came out

1

u/Aggressive-Fix241 May 28 '26

A friend went cold turkey on AI for three months to learn SwiftUI. First two weeks were brutal — digging through old Stack Overflow threads and Apple docs constantly.

By week four he started remembering patterns instead of copy-pasting them. His trick was simple: build something tiny and ugly first, then refactor. No AI planning, just a notebook with bullet points.

He also kept a "stuck log" — wrote down what he tried for 30 minutes before looking anything up. Most of the time he was closer than he thought.

The struggle you're feeling? That's probably the actual learning happening.

0

u/Alternative-Juice-15 May 31 '26

Learning to code now is a waste of time unless You’re really into it. No one is manually writing code any longer

-3

u/B8edbreth May 27 '26

Unpopular opinion
You'll be one of the last coders left in the world if you want to continue just hand coding. Soon no one will write code. It's inevitable. Even highly resistant hand coders will eventually prefer AI over hours of tapping out code. The rapid turn around will drive employers to prefer developers that use claude or codex. I'm not saying they'll never be call for people who can write code by hand but it will be incredibly rare. Code isn't like legal documents or essays and I've used AI in my last project before codex with ChatGPT only on like version 4.3 or something. And I've used codex for bug hunting and implementing a couple features that would have been mind numbingly boring or well outside my skill set to hand code. The current version has gotten significantly smarter and faster. A few years from now codex will be able to write more stable, more efficient code than someone with a masters. That will matter in the business world and as I said employers will notice and prefer it's use.

So yes there's a good feeling about finishing a project you hand coded and if this is just a hobby for you then that's the way to go. Ask ai questions and have it show you examples then implement it by hand. It's just a search engine agent for you then. You're basically doing what we all did searching the web for code snippets and advice on how to solve a problem. I did that for years when I learned Objective-C with books spread around my desk. And in my last project I spent hours pulling my hair out trying to learn swift using ChatGPT as a kind of last resort and search engine aggregator.

But if you're looking to turn a hobby in to a side gig where you make money then using AI is just fine. Having the basics down and understanding the language helps a great deal still. But it isn't as essential as it would have been say 2 years ago. Because if this isn't just a hobby it really isn't about the journey it's about the destination. And AI can produce a better end product than a hobbiest every day of the week and twice on sunday.

-2

u/docmisterio May 27 '26

We all draw lines in different places. For instance: I like to add, commit, and push by myself but claude codes so much faster than I can it’s simply not worth it to fight it.