Recently I've started reviewing system design and algorithms. While this is not for interview purposes, I find that this knowledge helps in both daily job and indie projects.
Below are a few resources that I've learned and I highly recommend. Thread 👇
1) System Design
System design is about defining architecture and modules interface to satisfy requirements. Whether you're working in a team or solo, clarifying requirements on what you want to do and what is exactly the problem, is most important.
2) System Design concepts
You don't need a CS degree to get started, but by reviewing system design, you know these concepts, which you need everywhere you go
I know big tech companies scare you away with these whiteboard questions, but I find it kinda helpful to understand basic data structure and algorithms for our day to day work
5) Data structure primer
Reviewing these basic data structure: Array, Linked List, Stack, Queue, Heap, Binary Tree, Hash, Graph
I like to try to implement these in my favorite language: Swift. Each language has different characteristics which gives different perspectives
SwiftUI ViewBuilder is resultBuilder, and from Swift 5.3 you can declare if let, if case, multiple if statements, switch, ... pretty much like a normal block function.
ViewBuilder is recommended to leverage SwiftUI type system to ensure performance. Here are a few examples 👇
Local variables.
Pretty much like a normal function, you can declare local variables and return View at last.
Mix if and switch statements
This is handy when you want to show modal or overlay of different Views
Convert JSON into gorgeous, typesafe code in any language. I use this a lot to quickly generate Swift models from server JSON response. It generates very elegant enum handling and optiona
Besides coming up with a good idea and building the app, there are many other things you can do to boost your apps' visibility #iosdev
Thread 👇
🧑🎨 Apple Human Interface Guidelines
HIG provides in-depth information and resources to design great apps. Not only you learn the fundamental of colors and fonts, you also learn how elements are used in Apple own apps as best practices
My most favorite session every WWDC is watching Apple Design Award. Learn how awesome apps demo design, innovation, and technology on Apple platforms, and why @Apple decide they deserve the price
I've done some #SwiftUI lately for @pushheroapp@PastePalApp , and amazed by how easy and fun it is to make apps. If you want to get into SwiftUI but don't know where to start, here are my recommended resources #iosdev
Thread 👇
1) First thing first is @Apple official guides. Apple has done a stunning job to make SwiftUI tutorials fun and interactive
1) Core Data is more than just SQLite wrapper, it manages objects, relationships, fetching, faulting, ...
2) Having 2 context: 1 main and 1 background that are both backed by the persistent coordinator. In modern Core Data stack, NSPersistentContainer has default viewContext already, we just need another newBackgroundContext