Discover and read the best of Twitter Threads about #iOSDev

Most recents (14)

A thread of #iOSDev stories featured on October's Swift News. Watch the full episode - . 🧵
Swift 5.7 Released - Official blog post from @hollyborla - swift.org/blog/swift-5.7… Image
Swift 5.7 Features in 90 Seconds from @v_pradeilles - Image
Read 15 tweets
Asking for ratings/reviews inside your app.

🧵

#iosdev Image
1 Image
2 Image
Read 5 tweets
How does the Kotlin Multiplatform work?

A thread 🧵

Please do retweet for max reach 🙏

#AndroidDev #Kotlin #iosdev
First, we write the shared code in Kotlin. For Android, it gets converted to the Java bytecode that can be executed in the JVM. So, Android already has a Virtual Machine(VM) that is easily capable of running it.
But what about iOS, how can it run Kotlin? Can we do it without the Virtual Machine(VM)? Have you ever wondered how it works?

For iOS, Kotlin code must be converted to the source code(native code executable on iOS) that goes inside the framework. That source code works on iOS.
Read 12 tweets
✨✨ SwiftUI tips

Y probably using SwiftUI in iOS 15 by now, here are 10 good practices to make good use of #SwiftUI #iosdev
✨ Take advantage of flexible frames

Sometimes we want to show a button in the corner of the screen and we use VStack, HStack with Spacer.

We can use flexible frame with maxWidth, maxHeight. It is more concise and does not have default spacing like in the stack.
✨ Use overlay with ViewBuilder

Let's say we want to show a star icon to the top right of a book cell.

Before iOS 15, overlay and background modifiers accept only View, so we need to perform logic in Group.

Now we can just specify alignment with content ViewBuilder.
Read 11 tweets
Are you new to iOS and Swift and want to find good blogs to learn & get up to date?

I can recommend the following 21 best free resources and blogs to learn Swift and SwiftUI for iOS developers #iosdev 👩‍💻🧑‍💻
⚡️ Stanford University's course CS193p (Developing Applications for iOS using SwiftUI)
cs193p.sites.stanford.edu

⚡️ Raywenderlich
raywenderlich.com

⚡️ ObjC Issues
objc.io/issues/

⚡️ NSHipster
nshipster.com

⚡️ 100 days of Swift
hackingwithswift.com/100
⚡️ Learn to code (Apple)
developer.apple.com/learn/curricul…

⚡️ App Dev Training (Apple)
developer.apple.com/tutorials/app-…

⚡️ Kavsoft
kavsoft.dev

⚡️ Sarun by @sarunw
sarunw.com

⚡️ Swift by Sundell
swiftbysundell.com

⚡️ Donny Wals by @DonnyWals
donnywals.com
Read 5 tweets
Development & design tools for iOS developers #iosdev ⚡️🔥

These are the 33 tools I use daily and have saved me so much time that I can't recommend them enough.
🔥 WTF Auto Layout
Demystify Auto Layout constraint error logs
wtfautolayout.com

🔥 NSDateFormatter
Preview different date formats
nsdateformatter.com

🔥 Quick Type
Convert JSON to Swift code
app.quicktype.io

🔥 Screen Sizes
Device info
screensizes.app
🔥 Cubic Bezier
Play around with bezier path
cubic-bezier.com

🔥 Regex101
Test regular expression
regex101.com
Read 10 tweets
Swift is a very typesafe and expressive language.

With newer features mean we can find new ways to write even more concise Swift code.

Below are 5 sweet techniques that you can use to supercharge your codebase #iosdev 💪🤩
💪 allSatisfy

Instead of using filter and count, you can use allSatisfy to check whether all element satisfies a given condition Image
💪 keyPath

Available since Swift 5.2, keyPath is a type that references a property, allowing us to write much cleaner code.

Given that it is a type, we can store keyPath, pass it around, and combine them. Image
Read 6 tweets
Alright, this Saturday we’re going to use Swift Playgrounds on iPad to start a ridiculous todo app: ToDon’t: where we add things to NOT DO to your todo list so that you can cross them off & feel more productive.

#iOSDev #SwiftUI #iPad

1/n
Starting with the little todo bit I made from Core Data in Swift Playgrounds here: cephalopod.studio/blog/build-an-…

2/n
One thing I want to do is use the new SectionedFetchResults from Core Data so that my crossed off items go to a different area. Also made my task.name a non-optional string.

And I added a bit of animation and voila!

3/n
Read 20 tweets
What are some essential online tools that help you in your day-to-day development tasks?

Here are the tools I can't live without

Thread 👇
⌨️ Quick Type by @quicktypeio

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

quicktype.io
👨‍🍳 CyberChef by GCHQ

The app is open-source and contains lots and lots of tools to convert texts, images, and formats languages

Great to have al things in 1 place

gchq.github.io/CyberChef/
Read 9 tweets
How to make your apps stand out on the @AppStore?

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

developer.apple.com/design/human-i…
🏆 Apple Design Award

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

developer.apple.com/design/awards/
Read 26 tweets
Today I released v2 of @ReadingListApp which *finally* includes iCloud Sync. I've been promising this for years; it turns out two-way cloud sync is hard 😅

Here are my learnings, which might be useful to those interested in #iosdev

I'm using Core Data and CloudKit - you can get the two syncing relatively quickly with NSPersistentCloudKitContainer, but it has drawbacks:

❌ It's a black box. if sync isn’t happening quickly, or behaving weirdly, there’s not a lot you can do to work out why 🤷‍♂️
❌ Merges are resolved via last-writer wins across entities, not attributes. In @ReadingListApp, a Book entity has lots of fields. This merge behaviour means that some local changes could be erased by the app receiving remote changes of other fields 😢
Read 18 tweets
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

- Introducing SwiftUI developer.apple.com/tutorials/swif…
- Develop Apps with SwiftUI developer.apple.com/tutorials/app-…
- Creating a macOS App developer.apple.com/tutorials/swif…
2) Next is a mini-series focusing on fundamental blocks which are Stack and ScrollView

- Creating Performant Scrollable Stacks developer.apple.com/documentation/…
- Aligning Views Across Stacks developer.apple.com/documentation/…
- Building Layouts with Stack Views developer.apple.com/documentation/…
Read 18 tweets
A few things I’ve learnt about widgets whilst trying to add live bus times (a thread):
How often can a widget make a URLRequest to refresh its data? #iosdev 1/11
Fetching data then setting 1 solo view in the timeline and asking for a refresh in 2 minutes, will not fire for approx 5 minutes.
So 5 minutes then?
Well no. 2/11
If you add say 18 views to the timeline 10 seconds apart (3 mins) and request an update after 2 minutes, you will likely get a hit every 2 minutes and be able to call your URLRequest. 3/11
Read 11 tweets
For the past 2+ years I’ve been building my side project using #CloudKit and I’d love to share what I’ve learned.

There isn’t a ton of info out there on it, and I’ve got some tips that I’m not sure I’ll get around to blogging about so I’ll add them here in a thread 👇
First off - subscriptions. There are three main types:
CKDatabaseSubscription
CKRecordZoneSubscription
CKQuerySubscription

Unless you’re *only* using the default zone, you should start with CKDatabaseSubscription.
The reason is it vends custom zone changes and more importantly changes from a shared database. RecordZoneSub can’t do this, neither can a query sub.

If you know you’re for sure not supporting sharing, you can get away with a recordZoneSub *mostly*.
Read 25 tweets

Related hashtags

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!