readaggregator | Technologies

Telegram-канал readaggregator - Readaggregator - iOS, Swift, Apple, Programming, Mobile

830

This channel aggregates interesting information from many resources. So If you are interested in Swift, iOS, Apple and so on - welcome! Check the open-source projects: https://github.com/Otbivnoe Leave a feedback: @otbivnoe

Subscribe to a channel

Readaggregator - iOS, Swift, Apple, Programming, Mobile

Celebrating the codebase’s 10-year anniversary of the Facebook iOS app, the author highlights the challenges faced during the development process and how they were overcome, with a focus on performance optimization, reliability, and scalability.

2014. The team built a new, React-inspired UI framework (Component Kit) which resulted in a 50% performance improvement.

2016. Started moving large portions of code into dynamic libraries (dylib) to curb the unbounded growth of the app's startup time. The dylib solution was effective but resulted in runtime failures and linker errors.

2017. Adopted Buck build system to address the issues introduced by dylibs. Buck allows each target to be declared with configuration information, and generates a graph of the app's classes and functions during the build process. This became the building block for FBiOS's next generation architecture.

2018. Introduced a new plugin system using Buck and code generation to build and map information about the code dependencies. This system replaced the runtime-based app-module system and improved reliability, provided faster feedback to engineers, and allowed for code sharing between mobile apps.

2020. Faced challenges due to the growing use of Swift-only APIs from Apple and the preference for more Swift in the codebase. Historically, FBiOS relied on C++ for abstraction, but it does not interop with Swift, leading to code bloat when creating shims for Swift use.

https://engineering.fb.com/2023/02/06/ios/facebook-ios-app-architecture/

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

I recently came across an interesting article on creating custom SF symbols, and it piqued my interest as I had never considered this approach before. If your app involves displaying text alongside an icon and it should be automatically aligning with text in all weights and sizes. If you also adopt Dynamic Type, it can prove to be extremely helpful. Adopting custom SF Symbols is a great way to enhance the design and usability of your app.
https://www.david-smith.org/blog/2023/01/23/design-notes-18/

How to create SF Symbols with Sketch
mkproduct-stories/how-to-create-sf-symbols-with-sketch-2952ee02abf5" rel="nofollow">https://medium.com/@mkproduct-stories/how-to-create-sf-symbols-with-sketch-2952ee02abf5

#SF #design #iOS

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

Did you know that VoiceOver, the screen reader built into Apple devices, automatically reads the name of an image for accessibility purposes? And even better, you can provide a more descriptive accessibility label for the image by using the name in the Localizable file. This helps make the content on your app more accessible for people with disabilities.

https://nilcoalescing.com/blog/ImageAccessibilityLabelsFromLocalizableStringsFiles/
#iOS #Accessibility #VoiceOver

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

You know what I mean 😌
defaults write com.apple.dt.Xcode XcodeCloudUpsellPromptEnabled -bool false

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

Just a quick reminder that clipped() modifier doesn't affect the clipped view’s hit testing region. Important to use it in conjunction with the clipShape modifier.
https://oleb.net/2022/clipped-hit-testing/
#SwiftUI

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

Xcode no longer offers the enabled Bitcode by default and strips it before being submitted to the App Store. These changes have affected the size of applications and some of them have suffered significantly. Emerge Tools team investigated in details what exactly have been changed and how we can face with these new modifications.

• On October 8th, the Nike iOS app install size was 182.2 MB. A week later, it was 322.1 MB (+68%)
• American Airlines went from 182.2 MB to 389.1 MB — with Xcode 14 causing 76.2 MB (+42%) of the increase
• Chime increased from 162.8 MB to 212.8 MB (+31%)

https://www.emergetools.com/blog/posts/how-xcode14-unintentionally-increases-app-size
#Xcode #bitcode

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

Great summary of the pitfalls that can happen by using new Swift Concurrency.

#swift #concurrency

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

It turns out that in addition to all known access levels, there's also an experimental feature called SPI (System Programming Interfaces). It lets for library developers shipping experimental features only to dedicated clients and hiding those features to other ones.
https://blog.eidinger.info/system-programming-interfaces-spi-in-swift-explained
#swift

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

FYI 👇

Q: Is there a documentation up for accessing dynamic island (on iPhone 14 Pro) with live activities? Couldn't find anything

A: Live Activities are implemented using the ActivityKit framework, which was available in iOS 16 beta 4 and iOS 16 beta 5. The ActivityKit framework is not included in iOS 16 RC, and is not included in Xcode 14 RC. ActivityKit will be included in an update to iOS 16 coming later this year, as mentioned in this News and Updates post. Once ActivityKit is available in an update to iOS 16, you'll be able to implement Live Activities and interact with them in Dynamic Island.

https://developer.apple.com/forums/thread/713978

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

Turns out that there is a UML generator for Swift. I wish I had known about it last year.

In addition, a small example - how to generate class diagrams from a framework.

#uml

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

Long read about the presentation changes in iOS and iPadOS 16

When the presenting view controller is in a regular-width environment on iPad, form sheets are slightly bigger than on previous iPadOS versions. This changed in beta 4. (If the presenting view has compact width, a form sheet presentation will adapt and fill the width, just like on iPhone.)

The height of the navigation bar in a non-full-screen, non-popover, modally-presented view controller is smaller than before (12 points smaller on iPhone and 6 points smaller on iPad), but this has not (yet?) changed in SwiftUI. This change has only just occurred in beta 5.

Non-full-screen modally-presented double and triple column style split view controllers have a different appearance compared to iPadOS 13 to 15.

https://hacknicity.medium.com/view-controller-presentation-changes-in-ios-and-ipados-16-474c82c9ed2e
#UI #iOS

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

We all know that Meta collects everything about us, no surprises. Every step is being watched. More accurate advertising - more money. For this reason, Felix prepared an investigation on how their in-app browser tracks us. In case you use in-app browser rather than the built-in Safari, just read this article.
https://krausefx.com/blog/ios-privacy-instagram-and-facebook-can-track-anything-you-do-on-any-website-in-their-in-app-browser
#privacy

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

It turns out that in SwiftUI you can finally hide the home indicator without UIKit hacks.
https://danielsaidi.com/blog/2022/08/01/removing-the-home-indicator-in-swiftui
#SwiftUI

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

Apple has prepared an online meeting with App Store experts to cover the following topics:

- Get started with TestFlight
- Get started with app discovery and marketing
- Explore Family Sharing for in-app purchases
- Optimize subscriptions for success: acquisition
- Get started with in-app events
- Get started with custom product pages
- Get started with product page optimization

https://developer.apple.com/events/app-store/
#Apple

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

iOS 16 comes with great improvements in app launch time. For apps like Lyft or Airbnb launching almost twice as fast.

And more in-depth posts as well:
- Speeding up protocol conformance checks
- Reducing the amount of data loaded from disk

#iOS #optimization

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

Handling complex gestures within a ScrollView in SwiftUI can be a real challenge, especially when you want to do more than just a simple tap. Gestures conflict with the ScrollView gestures, which cause scrolling to stop working and the gestures not being detected. Unfortunately, there's no built-in way to handle it, so we need to find some hacks. Daniel found a clever workaround using ButtonStyle and wrote an article about it.

https://danielsaidi.com/blog/2022/11/16/using-complex-gestures-in-a-scroll-view
#SwiftUI #gestures

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

Shopify recently migrated their biggest mobile app (4 root screens at the moment) to React Native and wrote a blog post about it. They talk about the challenges they faced and how they overcame them. They also explain the benefits they've seen since making the switch. It's a really interesting read if you're thinking about migrating a big app or just want to know what it's like.

https://shopify.engineering/migrating-our-largest-mobile-app-to-react-native
#react_native #shopify

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

To add a festive touch to our application for the Christmas season, we've implemented snowflakes. Out of curiosity, I asked ChatGPT to try implementing them as well, and after comparing the results, I decided to go with the ones that the AI generated for me. I particularly appreciated the option for improving the code, which included a detailed explanation of how to set up the particle system to make the snowflakes look as realistic as possible.

If you haven't had a chance to try it out yet, there's a short article that demonstrates the capabilities of this tool and gives you an idea of what it looks like in action.

https://www.createwithswift.com/prototyping-swiftui-interfaces-with-openais-chatgpt/
#ChatGPT

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

A subscriber sent me an mikhailmaslo/test-push-notifications-w-o-3rd-party-services-f0d1696f733a">article to share with you. In the article, the author explains how to test push notifications on a device using simple terminal commands. This method does not require using third-party services that require you to upload certificates. Everything is done locally and uses the Apple API directly!

Feel free to ask any questions — @mikhailmaslo

#iOS #notifications

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

Several excellent SwiftUI extensions for Bindings that greatly simplify the life of developers especially in Xcode preview.
https://betterprogramming.pub/swiftui-binding-extensions-b6a9f27d2858
#SwiftUI

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

Inspired by the previous article an author decided to figure out how Swift Concurrency deals with Thread Explosions.
https://swiftsenpai.com/swift/swift-concurrency-prevent-thread-explosion/
#swift #concurrency

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

If you have any questions about Dynamic Island or SwiftUI with accessibility, it's time to ask them directly to Apple developers.
https://www.apple.com/newsroom/2022/10/apple-introduces-ask-apple-for-developers/
#Apple

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

Here we go. API docs about Dynamic Island support are now available.
https://developer.apple.com/documentation/activitykit/displaying-live-data-with-live-activities
#iOS #widgets

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

A bit of new API: layout guide that is useful for full-screen content:
safeAreaAspectFitLayoutGuide

“Unlike the standard rectangular safe area defined by the safeAreaLayoutGuide/safeAreaInsets, this new layout guide API considers the true shape of the safe area, including the curvature of the display edges and sensor housing/island areas, maximizing the content without clipping.”

Read the Tyler’s thread about the all details.

https://twitter.com/smileyborg/status/1567624484206825472?s=46&t=csd2d8i61Hh2K4Z9JvlR1w
#iOS

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

Thomas discusses about AttributedString in SwiftUI: what is good, what is bad, what would be great to improve. He also prepared a helper that simplifies the life when working with texts.

p.s. now it's a little confusing when dealing with attributed strings. I really hope that Apple will take this problem into account and improve it soon. But this "soon" isn't really soon for us, unless you only support the latest version. 🥲

https://dimillian.medium.com/swiftui-attributedstring-is-not-there-yet-63d49e9f9c16
#SwiftUI

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

Oh, such an amazing repo with tons of animations using SwiftUI from different apps for inspiration and practice.😍
https://github.com/GetStream/purposeful-ios-animations
#SwiftUI #animations

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

Didn't pay attention to the improved Xcode code completion, but it seems to be awesome.
https://twitter.com/peterfriese/status/1554905178314158082
#Xcode

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

Such a detailed post about new Grid layout in SwiftUI. Highly recommended.
https://swiftui-lab.com/eager-grids/
#SwiftUI #Layout

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

Discovered something great today I want to share with you! How many times defining a custom decodable initializer, for instance, have you lost the ability to use the automatically generated memberwise initialize, umm? Oh, I've faced it so often, especially in tests. So the solution is easy - just define this initializer in an extension, and that's it.
https://danijelavrzan.com/posts/2022/07/how-to-test-custom-codable/
#swift

Читать полностью…

Readaggregator - iOS, Swift, Apple, Programming, Mobile

Let's figure out what's new in the Xcode Previews.
At least I hope they have become more reliable and don't crash every 5 minutes. 🤞
https://useyourloaf.com/blog/whats-new-in-xcode-14-previews/
#Xcode

Читать полностью…
Subscribe to a channel