HomeiOS DevelopmentThe right way to make a Swift framework?

The right way to make a Swift framework?


Making a Swift framework should not be arduous. This tutorial will enable you making a common framework for advanced tasks.

What’s a framework?

A framework is a hierarchical listing that encapsulates shared assets, resembling a dynamic shared library, nib recordsdata, picture recordsdata, localized strings, header recordsdata, and reference documentation in a single bundle.

So in a nutshell, a framework is a extremely reusable element in your apps.

The right way to make it?

There may be an article about Xcode conventions which can enable you set up your tasks, it is best to verify that first, in case you haven’t earlier than.

Conventional method

There’s a conventional strategy to make a framework in Xcode. I’m going to create a shared framework for all of the apple platforms (iOS, macOS, tvOS, watchOS), which goes to be able to logging issues to the usual console.

Let’s make the challenge:

  • Create a brand new challenge utilizing one of many framework targets
  • Comply with the directions fill & title all of the fields
  • Add all the opposite platform framework targets
  • Rename all targets based on the platform names

Now in Finder:

  • Create a Sources folder and transfer all of the Swift and header recordsdata there
  • Create an Belongings folder with platforms subfolders
  • Transfer all of the Information.plist recordsdata into the proper platfrom subdirectory
  • Create a Assessments folder and transfer take a look at recordsdata there

Again to Xcode:

  • Take away each group and add the brand new Folders from Finder
  • Test that each goal has the proper recordsdata (framework & exams)
  • Contained in the header file, exchange UIKit depencency with Basis

The aim is to attain a construction considerably like this:

The right way to make a Swift framework?

Undertaking settings:

  • Choose the proper plist recordsdata for the targets
  • Set your bundle identifiers (use my conventions)
  • Setup platform variations (recommendation: assist 1 older model too)
  • Setup the plist recordsdata for the exams from the construct settings pane
  • Set the product title (Console) in your framework construct settings
  • Test your construct phases and add the general public header file.

Scheme settings:

  • Go to the scheme settings and setup shared schemes for the frameworks
  • Collect protection knowledge in case you want it
  • Write your framework you should utilize Swift “macros” to detect platforms

There’s a flag in Xcode to permit app extension API solely, in case you are embedding your framework inside an software extension it ought to be enabled!

Congratulations, now you have got your model new Swift framework made within the conventional method. Let’s proceed with a neat trick.

Common cross platform framework

It’s attainable to create a multiplatform single scheme Xcode challenge with cross platform assist for each platform, but it surely’s not advisable as a result of it’s a hack. Nonetheless a number of open supply libraries do the identical method, so why shouldn’t we.

  • Delete all of the targets, schemes, besides macOS!!!
  • Rename the remaining goal, scheme (we don’t want platform names)
  • Use the challenge configuration file, set the xcconfig on the challenge
  • Delete Information.plist recordsdata, use one for the framework and one for the exams
  • Rename bundle identifier (we don’t want platform names there too)

States could be blended up in case you are constructing for a number of platforms, nonetheless it is a good clear strategy to assist each platforms, with out duplications.

The right way to use a Swift framework?

Embedding your framework is essentially the most easy factor to do. You’ll be able to merely drag the framework challenge to a different Xcode challenge, the one factor left to do is to the embedded the framework into the applying. You’ll be able to go to the embedded binaries part inside the final challenge information tab and add the framework as a dependency.

Swift Package deal Supervisor

With SPM, it’s a must to make a Package deal.swift file first, you then’ll be capable to construct your targets with the swift construct command. Now that Xcode helps the Swift Package deal Supervisor, it’s very easy to combine third get together frameworks by utilizing it.

You’ll be able to obtain the ultimate framework examples from GitHub.

Just remember to don’t miss out my deep dive into swift frameworks publish.

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

- Advertisment -
Google search engine

Most Popular

Recent Comments