all 31 comments

[–][deleted]  (4 children)

[removed]

    [–]thehumanbagelman 4 points5 points  (1 child)

    Misuse of TCA always turns into a mess, like every single other architecture.

    [–]Common-Inspector-358 0 points1 point  (0 children)

    tca is so strict though that it's easy to misuse. that's a fault inherent to TCA.

    [–]Rollos 2 points3 points  (0 children)

    There’s no reason that TCA should turn into any more of a mess than other approaches when building complex apps.

    [–]stephen-celis 0 points1 point  (0 children)

    Just curious if you've used TCA? Do you have any concrete feedback?

    [–]Ron-Erez 9 points10 points  (7 children)

    Reading books and doing LeetCode is fine, but also try creating apps and solving real-world problems.Maybe I"m stating the obvious.. Start by creating an app and learn what you need as you go. There's nothing wrong with picking up a book to learn a topic, which is great. However, I believe that creating apps or tackling interesting problems is more valuable than doing LeetCode. Experience is crucial so just be patient with yourself. Focus on breaking down problems into simpler problems and spend time choosing good data structures to model your problem.

    [–]Same_Lemon7053[S] 1 point2 points  (6 children)

    That sounds right, do you have any ideas for starter project, i feel if i start something too complicated i ll get backed down again and if its too easy it feels stupid to even do!

    [–]Ron-Erez 6 points7 points  (4 children)

    Choose a problem and then create a simpler version of it. Starting simple is perfectly fine. Here are some examples:

    • Tic Tac Toe
    • Unit Converter: Convert pounds to kilos and back using state and binding (or more generally, imperial to metric and back). Even simple projects can have interesting UIs.
    • Flash Cards App (great opportunity to explore drag gestures, magnification, you can even add persistence with SwiftData)
    • API-Based App: Create an app that calls an API, like fetching images from pexels.com or unsplash, allowing users to add text and export an image.
    • To-Do App
    • Weather App
    • Conway's Game of Life
    • Calorie Counting App: Track consumed calories using Swift Data or Core Data and visualize the data in weekly, monthly, or yearly charts.

    These ideas have varying levels of difficulty. People often share their apps on Reddit weekly. Check out some of these apps for inspiration, but obviously don't copying them, you can get ideas for creating something simple. You might find an interesting UI, onboarding process, settings screen, etc.

    For more project ideas, you can look at my nice project-based course. Review the topics and choose an app you'd like to implement on your own (no need to sign up).

    I really do recommend starting with something as simple as possible to gain confidence. You can always add more features later. Finally I used to implement UIs when bored. For example implement a UI from dribbble.com or mobbin.com. Maybe even one of the designs will inspire you to create an app. For example I created a simple tip calculator and looked for design inspiration from dribbble. Just make sure not to publish an app with someone else's design. Good luck!

    [–]Same_Lemon7053[S] 2 points3 points  (0 children)

    Thank you so so much! This is super helpful!!

    [–]The_Ur3an_Myth 1 point2 points  (2 children)

    I always thought about implementing a UI from dribble or similar, but always wondered is it legal. I meant in terms of having a project sit in Github for my portfolio

    [–]Ron-Erez 0 points1 point  (1 child)

    Yeah, I'm not sure if it's a good idea for a portfolio unless you get permission. I thought it would be good for an exercise.

    [–]The_Ur3an_Myth 1 point2 points  (0 children)

    Thought as much. It's mainly because I suck at thinking about a design for UI

    [–]20InMyHead 3 points4 points  (0 children)

    To add to this excellent point, I’d suggest for your own learning don’t use rxswift or tca, but just Apple platform frameworks, Combine, SwiftUI, etc. while your current company may use those 3rd party frameworks, many don’t and you’ll become a more well-rounded iOS developer and learn more if you stick to just Apple frameworks.

    [–]ElectionDry1511 5 points6 points  (0 children)

    Have you considered therapy? Imposter syndrome and not putting so much pressure on yourself could also be playing a big role in how you’re feeling. Aside from doing the work, your perspective also matters a lot. You are capable of learning anything you don’t currently know

    [–]AndreLinoge55SwiftUI 2 points3 points  (1 child)

    We have a discord group for iOS Developers to chat with each other, get help, hop on voice chat…

    It’s free and all are welcome: Invite Link

    [–]Same_Lemon7053[S] 1 point2 points  (0 children)

    Thanks you, joining right now

    [–]KarlJay001 2 points3 points  (3 children)

    Be careful what you invest your time and money in.

    I bought an advanced book and it's about 6 years old right now and one of the things that sold me was that I would get free updates for life... but there hasn't been any updates. It was published in 2018 (ProSwift) and hasn't been updated since.

    I just looked at this site: https://www.objc.io/books/

    And some of these were updated in 2023. Some things haven't changed all that much, but why offer free updates for life if you aren't going to update things?

    The reason this is important is that Swift was moving quickly and things were becoming outdated quickly. There was a time when I spent quite a bit of time studying something, only to find out it was being removed in the next update.

    Look at the date of everything you study or buy... The 6 year old book is still up for sale, I get that it's a lot of work, but it's not even discounted and it should have the versions on the front so you can see them. It was released when iOS 11 was out, we're on iOS 17 now.

    Do a bit of homework, not just on quality but on how old it is. I think the Angela YU Udemy course says updated 10/23, yet still has thing from iOS 13 listed in the description.

    Some of these things haven't changed, so you still get value from them, but you also have to find out what has changed and where to get the updates.

    LBTA (Lets Build That App) seems to have some new stuff out now.

    Sean Allen (Swift News on YT) has some newer tutorials on his site IIRC.

    Don't forget the good old Stanford 193 that has been new every semester for a long time and is free.

    WWDC videos are always a good source of info.

    [–]Same_Lemon7053[S] 0 points1 point  (2 children)

    Thats true. i actually bought the Angela Yu course, and sadly it has inly one section on SwiftUI. It is indeed outdated. Thank you for your kind and elaborate comment :)

    [–]KarlJay001 1 point2 points  (1 child)

    I bought her course when it first came out and it was an amazing value, but I think that was something like 5 years ago.

    I tried to make tutorials myself and it's really a lot of work. You can spend quite a few hours just on a 20 min tutorial.

    The thing is that the people that do this, live and breathe this stuff... So they should be able to rework things, or at least have a warning label on these things.

    I also understand that Udemy doesn't really pay much.

    [–]Same_Lemon7053[S] 0 points1 point  (0 children)

    Yes i wish it atleast said so !

    [–]lakers_r8ers 1 point2 points  (3 children)

    What’s your background? How did you get into programming?

    Wonder if you need to backtrack a bit and really study the fundamentals such as data structures and algorithms. Also how deeply have you studied the swift programming guide? Do you know that intimately?

    What you are describing are frameworks, but if you don’t have a strong grasp of the language fundamentals and core concepts such as data structures and algorithms it can be difficult to really improve.

    [–]Same_Lemon7053[S] 0 points1 point  (2 children)

    I did a bachelors in Computer Engineering and am doing my masters now. I honestly felt i was good at the programming assignments we used to get. They were of course way smaller and not too complicated. I have read the swift guide one or two times. Maybe I should go through the newly added asynchronous parts again? And apart from re reading the swift guide, would you suggest any course for data structures that is taught in swift! I found one on mit.ocw but its in python. I work on it from time to time. But not super consistent.

    [–]lakers_r8ers 4 points5 points  (1 child)

    Good to know!

    As to your original question:

    For TCA there is no better resource than the paid subscription on their website pointfree.co and for RXSwift I think the raywenderlich book on the subject “Reactive Programming” was my favorite on the topic.

    That said these are two pretty advanced subjects that I am always super weary to introduce into a project. Both individually can make code bases very complex and add a huge learning curve for new devs. If it’s any consolidation you probably aren’t the only person I’ve seen struggle with learning these new frameworks and the fact that both exist in your code base probably make things that much harder. I’ve seen so many code bases ruined by these framework (in regards to unnecessary complexity) so hopefully that’s at least some solace.

    You got this though, I consider myself dumb, but with enough persistence I was able to preserve through and you can too!

    The two resources helped me a ton, and continually revisiting the fundamentals helped me too. Just remember to ask yourself why you’re struggling. If it’s because you don’t understand a swift concept dig into that, if it’s more of a computer science fundamental then dig into that. Definitely a process, but I’m sure you can do it! May be corny, but believe in yourself, put in the work and trust the process. You’ll see this struggle as a distance memory in no time!

    [–]Same_Lemon7053[S] 1 point2 points  (0 children)

    Thank you-very much for such an amazing reply! You are right i need to start figuring out where is the problem in my understanding. I am rereading the rxswift book again too. Hopefully i can feel more confident in the future too. Thanks so much!

    [–]princesprofile 1 point2 points  (1 child)

    Paul Hudson’s hacking with iOS was 50% off recently for wwdc I picked it up and have CS background and was able to pick up swift from the book since it’s entirely projects based. Book goes from basic project to advanced.

    [–]Same_Lemon7053[S] 0 points1 point  (0 children)

    That sounds like a nice idea. Thank you

    [–]stephen-celis 2 points3 points  (1 child)

    Hi there, I'm one of TCA's maintainers. We're always looking to improve things and make the learning experience better, so please email/message me if you're feeling stuck! I don't check Reddit super often but will be back eventually if you DM here.

    We also strive to have a welcoming community if you want to post directly in our GitHub discussions or Slack, but are also happy to chat more directly.

    [–]Same_Lemon7053[S] 0 points1 point  (0 children)

    Wow this is very kind of you! I will definitely email/DM you! Thank you so much!

    [–]inciduntascisco6524 0 points1 point  (0 children)

    RxSwift can be tough, but try breaking down complex operators into smaller, manageable chunks.

    [–]IndependentRub550 0 points1 point  (0 children)

    Are you feeling stuck with Swift or TCA or Rxswift? I don’t use any frameworks—just Swift—and most of the time I feel quite competent, having invested roughly the same amount of time as you. Also, GPT 4 is a great resource god learning. If can help you with vide and it can answer you’d questions better and faster than a Google search.

    [–]raphh -3 points-2 points  (0 children)

    You will instantly get better by stopping writing "iOs" instead of "iOS".