r/iOSProgramming • u/Ivesy_ • Oct 19 '24
r/iOSProgramming • u/alielknight • Jul 13 '25
Humor I just saw this and I HAD to share!
r/iOSProgramming • u/dams96 • Mar 13 '25
Discussion Made $35K in sales over the past 30 days as an indie dev. Started building apps a year and a half ago. AMA.
I’m going to preempt some of the questions I might receive:
• I’ve built 20 iOS apps since June 2023. Most of them include at least one AI feature, so they are primarily AI-related. I will not share my app links or Apple developer account for several reasons, mainly because it would reveal my full name, address, and phone number. However I’m happy to answer any questions about how I choose which apps to build.
• I had never coded before 2023, but I do have a master’s degree in microengineering from a top European school (so I have strong reasoning skills). I’m 28 years old.
• I’m still not an expert iOS developer but I’ve learned a lot since I started. On average my apps are 60% AI-coded and 40% coded by me.
• I typically work 3–4 hours a day, though it’s hard to give a precise estimate. Sometimes, I go weeks without coding due to severe health issues, while other times, I work 15+ hours a day when I’m feeling motivated and healthy.
• I have a social and love life, but I struggle with maintaining a consistent routine (which has always been a challenge for me). I do feel lonely sometimes, as I mostly work alone. Except for the past three months, during which I’ve been working on a more complex app with my friend and co-founder (for this specific app only).
• All of my installs are now organic (ASO only). I had about 50K installs in the past 30 days. Initially, I leveraged my TikTok presence as a tech influencer, posting two videos that each got over 1M views. Those helped me gain 30K installs early on, but my app at the time had barely any monetization.
• I create my App Store screenshots using Figma and design app icons using Midjourney/Flux model with some Photoshop. I don’t pay anyone for design or coding.
• My apps have simple UIs, but they are definitely not “ugly.”
• The longest I spent building an app was 3–4 months (my first one), while one of my top-grossing apps took just one day to create and publish on App Store Connect.
• ASO (App Store Optimization) is one of the most critical skills for an indie developer without the budget for paid acquisition strategies.
• Twitter is a great place to find like-minded iOS developers who share valuable insights.
• Of the $35K in sales, roughly $30K is net proceeds. After taxes (I live in France), I keep about 15K€-18K€ for this specific month.
• My API costs are low (thanks to heavy optimization), typically around $150 per month, with a max of $300.Send me your questions, and I’ll try to answer those that I think will be most helpful to you. Just a reminder, everyone can make it.
r/iOSProgramming • u/Tonqer • Jan 09 '21
Augmented Reality animated iPhone box made with SwiftUI, ARKit 4 and RealityKit (Github repo in comments)
r/iOSProgramming • u/poss1bl3_ • Sep 15 '26
Discussion Xcode 27 just broke years of muscle memory by flipping Play & Stop. Any rationale behind this?
Xcode just decided to update itself from 26.6 to 27.0 right in the middle of my work session.
The first thing that caught my eye right away: they swapped the positions of the Play and Stop buttons in the toolbar. Years of muscle memory just vanished in an instant, and to make things worse, it seems there's currently no way to customize or revert it back.
I genuinely wonder what the reasoning behind this UI decision was. Why change something so established and fundamental after all this time?
Now I'm really curious (and a bit cautious) about what other surprises I'm going to discover along the way as I keep working.
What do you guys think about the new Xcode 27 update so far? Did anyone else's muscle memory take a hit?
r/iOSProgramming • u/Conscious_Search3130 • May 02 '25
App Saturday Just got my first payment from @AppStore… kinda surreal.
9 months ago I started making iOS apps, barely knowing what I was doing. Today I got my first payment… hopefully the first of many. Keep creating, friends.
r/iOSProgramming • u/[deleted] • Jul 12 '20
Humor I find myself doing this too many times
r/iOSProgramming • u/HumbleRevolter • Dec 28 '24
App Saturday Marketing my app while driving for Uber
After launching my app, I kind of run out of money and had to start working a lot.
And I didn't have a lot of time or money to market the app.
So one day while working I thought “why not market it inside my car since I already have a lot of unique visitors (literally) to my car?”
So I did and haven’t had any sales from it yet but got several positive comments like:
"oh you're built this?" "Keep it going" "Oh app, what is it?" "You built this app, who are you targeting? I think people u need to find your target audience and there's need for this..." etc
Note:
I posted similar post before but it was taken down due to not being Saturday and told to repost on Saturday.
So here I am, hopefully it won’t get taken down for repeat post.
App Store link: https://apps.apple.com/in/app/sumup-for-safari/id6642665387
r/iOSProgramming
•
u/Ok_Bank_2217
•
Apr 01 '25
Humor WTF?? UIKit is being deprecated in 2026 (More in the comments)
r/iOSProgramming • u/NothingButBadIdeas • Mar 13 '23
Article From "Hello World" To Your First Job, The Self-Taught iOS Roadmap I Wish I Had When I Started, What To Know For Beginners
After getting my first official job in iOS development with no degree and being self taught I've been repeatedly asked questions like "How do I know I'm ready?", "How do I get out of tutorial hell?", "Where should I start?", "Where should I look for jr. iOS jobs?" and more. I remember how lost and confused I was when I first started, so I wanted to share what I wish I had known when I started. For the TL:DR, here's the list of what a beginner should learn and in what order:
-1) Views: Learn UIKit and how to programatically set up your views. You should be able to recreate a collection view and familiarize yourself with layers, animations and draw(). Learn the difference between writing with gpu and cpu. Learn some swiftUI, however I personally have noticed most jobs haven't transitioned fully or at all to swiftUI, hence the focus on programmatic views.
-2) Network Calling: Learn how to interact with a restAPI using URLSession. You should be able to GET and POST to an endpoint. Learn and know how to get a list from any API.
-3) Data Persistence: Learn UserDefaults, KeyChain, FileManager, CoreData and CloudKit
-4) MultiThreading: Learn DispatchQueue, GrandCentralDispatch, Async-Await, OperationQueues
-5) Architecture: Master delegates and protocols, MVVM, Facade Pattern, Dependency Interjection. Properly use guard statements / optional unwrapping and learn about Automatic Reference Counting
-6)Frameworks: have fun with this one, Apple has so many cool frameworks but definitely get familiar with basic ones like AVFoundation, MapKit, etc.
-7)Objective-C: spend a few hours making an app with a collection view that gets a list from the internet in Objective C so you can say you’re familiar with it.
By following this roadmap and learning everything above you’ll be able to make any app / be prepared for a job as an official developer. An iOS Developer essentially (1)makes views, (2)gets data from the internet for the views to display, (3)saves the data, (4)handles the data properly so your views don’t get backed up, (5)organizes code and (6) uses different frameworks to get everything going. That’s iOS development in a nutshell. By having this as a foundation you should be able to tackle anything that comes your way.
Tips & Resources:
- NEVER download xCode from the app store, always download it from the developer portal:(https://developer.apple.com/download/all/?q=xcode)
- Download SF Symbols for system Images already built in to your app (no more cropping images you google):
https://developer.apple.com/sf-symbols/
- use this to create your apps icon instantly, all 30 different sizes:
- A good website for copying colors when paired with photoshop:
https://www.ralfebert.com/ios/swift-uikit-uicolor-picker/
- an awesome JSON viewer for api's:
https://jsonformatter.org/json-viewer
- POSTMAN: a must have when working with rest API's:
https://www.postman.com/downloads/
Where To Start:
- No Programming Experience:
If you've just been interested in programming and have zero knowledge, I highly recommend downloading unity and doing their roll-a-ball tutorial and completing their other intro tutorials (https://learn.unity.com/project/roll-a-ball). If you're asking yourself, "If this is about iOS development, Why would I start with Unity, Isn't that C#? Shouldn't I learn Swift? I don't care about game development". Well, alternatively you can use apples playgrounds to learn as well (https://www.apple.com/swift/playgrounds/). However, I cannot attest to it since it wasn't around when I started learning, so you can still try the Unity method as I did. As for Unity, which runs with C# instead of swift; C# and Swift are both Object-Oriented Programming languages (OOP). That means they're similar. By learning one, the other is extremely simple to grasp. But why Unity and game development? Learning coding by yourself can be hard and frustrating, especially when staring at plain text book answers all day. Following along with youtube videos or trying to decipher what StackOverflow is showing you can be stale and daunting. When you start with video game development, you get amazing visual feedback as to how your code is affecting what you're trying to do. For example, If I tell you "By iterating over an array you can get access to all the references in that array and manipulate them accordingly", that may seem intangible to someone with no programming knowledge. However, In video game development, you can see that by iterating over this array, and by attaching a grenade to each of these items, you're going to get explosions everywhere. It is, simply put, more fun and teaches you to not be afraid to break, test and stress your code. Another example, Text Book: "When you create a variable you're creating an instance or a reference to that object in memory". When you do that in game development, it simply creates a character, bullet, tree / whatever you want and puts it into the game. You'll see that all that simply means is you're creating something so you can reference it late. My point is, video game development is a more engaging and visual way to learn. Unity has excellent tutorials that will give you a foundation for programming where you have none. The main tools for your foundation being: Referencing objects, Arrays, Sets, Dictionaries, Value vs References, if-statements and more. Unity should get those grounds covered and fast.
Once you're done learning some coding basics in Unity, or done with playgrounds then its time to get straight to the point with some good old fashioned YouTube Tutorials!
Welcome to tutorial hell:
It's time to start making your first mobile applications! This is going to be difficult, because you're going to be following along and not really understanding what you're watching. But don't worry! Follow along and eventually it will stick. As you follow along with these tutorials don't be scared to stop, take a breather and digest what you've learned. The best way to learn and digest what you're watching is to BREAK your code. You're going to see a lot of UICollectionViews, UITableViews and more. Don't be shy to play with things. Set counts to 1000, make the background of a view a different color using cell.backgroundColor = .red. This isn't a 'you follow along and you're done'. Much like learning through game development, tutorials should be a hands on, test everything you're curious about, break everything experience. Here's some youtubers and their series I owe my career to:
Brian Voong: LetsBuildThatApp
Brian Voong is a gem when it comes to following along and learning to create amazing UI with UIKit programmatically. I recommend starting off with building twitter, youtube or any of his other tutorials. He'll show you how to set up collection views that can be reused.
https://www.youtube.com/@LetsBuildThatApp/playlists
Sean Allen: SeanAllen
Sean Allen has a talent for explaining swift concepts in an easy to understand way. It's been years and I still recall his star wars example every time I set up a delegate.
https://www.youtube.com/@seanallen/playlists
iOS Academy: iOSAcademy
iOS academy covers a large range of topics, and usually when I search for a how to on maps or another subject, I can be sure I'll find a video that will break down what I need.
https://www.youtube.com/@iOSAcademy/playlists
Paul Hudson: Hacking With Swift
Not a youtube channel, but Paul Hudson has been a front lines teacher with a great collection of books and resources. As you google your problems, rest assured hacking with swift will be one of the top results. His 100 days of swift, although it wasn't quite for me since I discovered him later in my career, is a valuable tool for newcomers. He has also appeared on John Sundells podcast Swift By Sundell and is a joy to hear talk.
https://www.hackingwithswift.com/
There's many more online teachers who have had a hand in guiding the next generation of iOS developers, and many more who have helped me as well, all it takes is a quick search. But be warned. Online mentors aren't the end all be all, and what they show you is geared towards beginners. They offer you hand holding for your first steps, and to get better eventually you'll have to search for more advanced topics on these intro tutorials. When you get more experienced, go back on what you've learned and ask yourself, whats the next step?
What is tutorial hell and how do I escape it?
Tutorial hell is what beginners describe as being stuck watching tutorials and feeling like they haven't learned anything. You can follow along and recreate twitter, youtube, instagram, etc and feel like you don't know what to do if you're left with a blank xCode Project. So how do you avoid this cycle? Simple! Build your own app. That's it! After you watch some tutorials on how to recreate some apps, it's time to get your hands dirty and bring your own idea to life. However, DO NOT GET HUNG UP ON YOUR APP IDEA. Don't overthink it, your app doesn't have to be perfect or even geared to a release on the store. Pick any app on any subject and just make it! Make a blank project and just start coding, and googling everything you need to know along the way. The foundation you got from watching tutorials will give you the knowledge of what to google as you go along. You know what a collection view is, you know you need it for your app but you don't remember how to implement it. Thats fine! Just google it, get it working in your project and move on to the next step! The first app I ever made was a delivery application for medical marijuana complete with a shop, driver delivery tracking and payments with Stripe. It took 6 months to make and when all was said and done, it looked pretty okay! Underneath the hood was a garbage fire, but what I learned with that project allowed my next app to be a little less of a garbage fire. It doesn't matter if you're doing something right or wrong, just get it working. The knowledge you gain is worth the abomination you may create. Here's some projects that are a must to complete so you have a solid understanding:
A real time chat application using firebase.
A map application using Mapkit
A to do list using coredata
A music playing app using AVFoundation
A picture taking app with filters.
Want to learn FAST? Don't have time to sit and make a whole app? Still not feeling like you know what you're doing? Speed Code!
What made me feel confident in my ability to code is by practicing what I call 'Speed Coding'. This is my personal practice of picking an app, any app, then spending the next few hours making it as quick as I possibly can. With your personal project, you may make a collection view once in 6 months (like what I did when I made my delivery application), however, when you speed code you make a dozen collection views in a week. Everything sticks better by doing! The goal is to figure out what you know and what needs to be worked on. As you speed code, remind yourself you're on a timer. Anything you cant google or write in about 10 minutes, skip and move on to the next part you're trying to recreate. When you finish, go back to what stalled you and study it. For example, you may have made the views quickly, but when it came time to animate a menu slider you got lost some time. Go back and spend the time on how to implement that.
When you plan on speed coding, choose different areas that you might want to work on. Speed coding really helps with setting up UI, but it's great for network calls as well. Google a list for a free weather api, movie showtimes api, list of presidents, amazon api and integrate those into your speed coding so you can get practice making a lot of network calls as well.
Here's a list of apps I've recreated that really helped me grow:
QuickBooks, LTK, Instagram, Youtube, Spotify, DoorDash, PostMates, BankOfAmericaApp, SnapChat, Pinterest, FanDango.
Not only do you get experience, but you kick start your portfolio!
GitHub Time!
Congratulations, if you've done the previous steps, you've got some experience under your belt. You may not feel like it, but you've become a competent programmer. Now it's time to take all the projects you've recreated and worked on and put them on to GitHub. GitHub is a useful online tool where you can upload your projects and keep them updated without fear of losing them. GitFlow is an industry standard and it's routinely used to push updates to your application. Not only is it useful for making sure you don't lose your application, but can also revert any changes you made to your app that completely caused it to break,. You can use your GitHub to show employers projects you've worked on. Learn how to add your projects to GitHub and how to check out a branch on a project and push an update.
Whats Next? I've Done The Projects and Want To Interview, But What Do I Need To Know To Be Ready?
Here's a secret, rarely anyone feels 'ready' when it's their time to interview. And interviewing is more of a skill nowadays than it is a way to gauge your programming. But by going over the list of what to know, and by reviewing your projects these interviews will be a walk in the park.
STUDY GUIDE I MADE WHEN I LOOKED FOR A JOB:
Above is the study guide I made, printed, and looked over repeatedly while looking for a job. I would spend a few hours a day learning every question and answer. If you can answer those questions and go in depth about them, then you're ready. To be honest, when I started studying for my interview it showed me where some gaps in my knowledge were, so don't feel dissuaded if you can't answer any of these off the top of your head. Just look them up as you study and learn a little more.
Getting professional experience for your resume:
So you know how to make an app, you've studied enough about swift and you have a few apps under your belt. If you released an app to the store, you can stop here and start your job search. However, if you want to add some experience to your resume then follow along. How do you solidify your abilities to find that foot in the door? Find someone who wants an app! This part is usually the most daunting to developers, getting your foot in the door by having professional experience for a company makes job hunting that much easier. Dont stress about getting that first job to help find your dream job, it's easier than you think. What I did to find professional experience was simple: I messaged UI Designers on freelancing websites and asked them If I could recreate their designs in xCode and give them the completed application. The UIDesigners loved this, since they got a free, working and animated native application and I got resume experience. They would send figma files and I would recreate the app. From there a few of them actually recommended myself to some of their clients! If you cant build that relationship, you can also find a local shop that might want an iOS app. Visit the strip in your town and visit small shops and ask them if they would like a free iOS app! Let them know that usually an app costs around $34,000 but you need experience and would be happy to make them for free. (An unethical tip: Tell them you're a student and you need to create an app for your thesis. It makes you seem less scam-artist and sketchy). It helps to get a small shop on board if you already have a prototype to show them on your phone. However, you should be able to find a business or a UI Designer that wouldn't mind you making a mobile application. From there, you have your first job (albeit, an unpaying one) as a professional iOS developer and instantly become 10x more appealing to employers. Put the job on your resume, and when it comes time to job hunt, you don't need to reveal that you weren't paid and did the job as a resume builder. Simply saying that you worked for x company or x-designer as an iOS developer will do.
The Job Hunt:
If you're looking for your first job, you've probably noticed that there's not many jr. iOS Positions available, and the internships are designed for college students. What you're not told is that the market for jr. developers is slim. The solution? Apply to normal development jobs. Think of the job listings as a wish list, and the employers post their ideal candidate. However, often their expectations are much lower. That being said, don't be shy to apply to every job opportunity you see. Getting experience doing interviews is invaluable, even for jobs you know you won't get. If it gives you any comfort, I too applied to jobs before I was ready while simultaneously being deathly afraid of interviews. I've bombed so many interviews so horribly I bet the recruiters still laugh about it to this day. For example, one time I was doing an interview and was asked to create a delegate. I had made 100's of delegates at this point, but I was so nervous doing interviews that my mind went blank. I proceeded to google how to make one on my phone, answered the interviewer in full confidence and they responded with, "uh, that's how you make a delegate in objective-c, not swift". They knew I had googled my answer on a question that should have been a conversation starter. I was so embarrassed I just said, "Thank you for your time" and hung up. But with each failed interview I grew more confident, and eventually this confidence grew to the point where It showed and I saw myself in the final rounds of interviews often. A tip I learned for a confidence boost is that before the interview, pretend that you've already received an offer from another company and that you're doing this interview to keep your options open.
One tip I recommend that helped immensely in getting to the final round of interviews is recreating the mobile app for jobs I really liked. When I received a response from a company I was interested in, I would download their app and recreate the core features in xCode and send a link with a short clip (using streamable) and the GitHub link to the hiring recruiter over linked in. I nearly always saw myself in front of the companies engineer afterwards.
Another interview tip I used is that when I was asked, " What do you look for most in a job?" I would respond with, "My end goal is to always grow better at developing. I want to find a job with strong senior programmers to help me grow my trade and guide me to better work in a team. Specifically I want to learn how to make enterprise scalable architecture."
Always have a strong opinion on a framework ready as well. I would like to bring up the struggles I have working with CoreLocation and MapKit. I would talk about how for getting a user location it's better to startUpdatingLocations, than it is to requestUserLocation because it's faster. When requesting a user location, it can take a while, however you can user startUpdating, create a location variable optional, set that that variable with startUpdatingLocation, then when the location variable is set, you use stopUpdatingLocation. This way, if you have a gps button the user doesn't have to wait a few seconds to get their location. Small details like this show how you can work around api to increase user experience.
Final Note:
I've been writing this on my lunch break and I know this guide is incomplete, and I'm not necessarily a word smith so i'll be sure to update this post if anyone seems interested. If you have any questions or want some help, feel free to comment or message me!
r/iOSProgramming
•
u/artemnovichkov
•
Sep 19 '26
Roast my code I turned iPhone Duo hinge into accordion
Fold and unfold the phone to play. Left screen is bass, right is keys. Sound is synthesized, no samples.
SwiftUI, open source: https://github.com/artemnovichkov/Accorduon
Update: it's now on the App Store as a full app: https://apps.apple.com/app/id6816177737
Six registers, play-along songs, and it works on regular iPhones too (rock the phone to pump the bellows). The open-source demo stays on GitHub.
r/iOSProgramming
•
u/EthanRDoesMC
•
Mar 26 '26
Discussion Please learn to love programming again. I’m begging you.
please stop mass producing apps.
seriously. I understand that we all need income and that the job market is as dry as Ben Shapiro’s wife. I understand that the bills don’t pay themselves. But this is just insane.
Half the posts on this subreddit are about subscriptions, I swear to god. Everything’s a paywall, and so many of those posts say that they’re launching multiple apps in short spans of time. God, why?
Do you take no pride in what you do? It is the development that is the good part. The good part is where you spend 3 hours on a UI element that makes you smile every time you see it. The good part is where you make a great architecture, and then adding features is like sliding through wrapping paper with scissors. The good part is when you have zero warnings in your build. The good part is when you show your friends the app you’ve been working on for a few weeks now, and they remember it. It stays in their mind.
The world has enough to-do lists. The App Store has enough to-do lists. And I don’t care that your AI integration is going to revamp my life or whatever, I’ve never stuck to a to-do list for more than a few days, and given this industry’s reputation, I imagine most of you don’t, either, or you wouldn’t be making so many of them!
My god. Hook up your phone to your Mac and settle in for 8 hours of straight development and experience the wonder that is flow state. Be creative. Express yourself, express yourself; don’t express the literal average (plus a small random factor) that is LLM output.
Be you. Make the most niche app and make it gorgeous. Browse the Apple docs and just see what it inspires in you. Make an app that doesn’t exist already, or one that’s vastly better than anything like it. Make something cool. Make something that makes people go “woaaaaah”, not something that makes people double-click the side button and open their wallet once a week or once a month in order to use the app.
Please contribute to the betterment of people, not the exacerbation of the problem.
r/iOSProgramming • u/shubham_iosdev • Apr 01 '21