At last, a long-awaited feature comes to Swift. Swift 5.3 will enable you to add binary dependencies in Swift Package Manager. Why does this sound fantastic? Because before Swift 5.3, SPM (Swift Package Manager) only enabled source-code libraries as a dependency, which meant that lots of enterprise software (which often comes as closed-source) or closed-source libraries couldn’t be added as a dependency in SPM, like Firebase or Google Analytics.
SE-0271 by Anders Bertelrud and Ankit Aggarwal brings Resources to Swift Package Manager. If you have any iOS development experience, you’ll know that you can add non-compiled files with
Bundle. In the new Swift Package Manager, based on Swift 5.3 or newer, you can add the same thing. You can add images, sound, and JSON and Swift will generate the bundle for you.
At the time of writing, Swift 5.3 isn’t officially released, but if you want to try it, download a snapshot build at Swift Snapshot.
On each target, know that you can declare recursively or specifically what resources…
Not all companies have the process of delivering products from development to production, but most of them have a method to showcase what they did and review it together before entering the production. Most companies will use Pull Request or Merge Request as a way to do that. It is known as a code review.
Code reviews are crucial for most teams. They help teams coordinate and streamline code quality across the team.
One thing to make the code review experience better is a pull request that invites peers to review, helping them understand the context of the pull request…
It’s no secret that the iPhone user is expecting high-quality apps they used on their iPhone. Especially since Apple has set a high bar in terms of the quality of apps on the iPhone. They create their hardware and software, and this is the recipe for success. They can write very efficient software because they know what and how this hardware behaves. That being said, as an iOS Software Engineer, it is our “nature’s call” to write great apps that run smoothly, and “Just Work” on iPhone.
One Big aspect of great apps on the iPhone is code that runs…
Model is a crucial part of our daily life as a Software Engineer. We use model to represent a state or data on our works. But you know what ? there are several powerful ways to utilize the model to maximize its potential.
We can create a Model that representing some state on our code. This Paradigm is heavily used on SwiftUI. Think Model as the only source for how your code reacts to things. …
How to avoid fatal mistakes on array Swift.
As a Developer, Array is one of the crucial tools we use to build our code. Array create this possibility to save the collection of object that organizes by index, and it’s very powerful for code that handling looping or handling dynamic data.
One common error every array user ever faced is “Fatal error: Index out of range”.this error was caused by accessing an index that array doesn’t even have in the first place.
This error is undetectable on build time and can only show up on runtime which will be fatal…
For a long time, I don’t read books. It feels so mundane, and I simply can’t do it. At a young age, like another student, I was forced to read books, so I can get a good grade and graduated.but outside that, I would never think to read books even just a little.
Growing up as a Software Engineer, I craft a behavior to read an article around technology, and this time it does not feel dull anymore. I willingly and passionately want to read it. I feel an urgency to know more and stay relevant as technology grows so…
Note: This is a series about Texture, To fully understand this chapter, you can first read this chapter Onboard to “Asynchronus” Layout API — Texture.
As you know, Texture is not using Auto Layout to layout its view. Texture using its own layout mechanism called LayoutSpec.
LayoutSpec is basically an API/Rules to manage how Node/View placement.
There are several LayoutSpec you can utilize to create your desired view.
ASWrapperLayoutSpec is a simple ASLayoutSpec subclass that can wrap a node and calculate the layout of the child based on the size set on the layout element.
Texture or previously known as AsyncDisplayKit is an abstraction layer of UIView which in turn is an abstraction over CALayer. Facebook initially developed Texture and then taken over by Pinterest. As UIView used Main Thread, Texture utilizes Background Thread to initialize and configure the node. Texture use Background Thread to do view calculation, image decoding, and text sizing.
Node is an abstraction layer over UIView, and if you know how to use UIKit’s UIView, you surely will quickly understand the node concept. Node shares almost all the attributes and functions with some additions.
You can find shared properties like backgroundColor…
After long theory, let’s create our Texture. We will try to create simple app called TextureGram. We will only focus only on View Aspect. Download/Clone this starter project:
Learning Driven Life • iOS Software Writer at Tokopedia • Exploring Swift and Anything that Sounds Fun • Open Source Enthusiast