Menu

Resources, Images, Themes

Skip.env

Skip app customization should be primarily done by directly editing the included Skip.env file, rather than changing the app’s settings in Xcode. Only properties that are set in the Skip.env file, such as PRODUCT_NAME, PRODUCT_BUNDLE_IDENTIFIER and MARKETING_VERSION, will carry through to both HelloSkip.xcconfig and AndroidManifest.xml. This is how a subset of the app’s metadata can be kept in sync between the iOS and Android versions, but it requires that you forgo using the Xcode Build Settings interface (which does not modify the .xcconfig file, but instead overrides the settings in the local .xcodeproj/ folder).


Resources

Place shared resources in the Sources/ModuleName/Resources/ folder. Skip will copy the files in this folder to your Android build and make them available to the standard Bundle loading APIs. For example, the following Swift loads the Sources/ModuleName/Resources/sample.dat file on both iOS and Android:

let resourceURL = Bundle.module.url(forResource: "sample", withExtension: "dat")
let resourceData = Data(contentsOf: resourceURL)

Images

Skip supports iOS asset catalogs containing PNG, JPG, and PDF image files, as well as exported Google Material Icons and SF Symbols SVG files. Skip also supports network images and bundled image files. The SkipUI module documentation details where to place shared assets catalogs, how to supply SF Symbols to your Android app, and how to load and display images in your SwiftUI.


Fonts

Skip allows you to use your own custom fonts on iOS and Android. The SkipUI module documentation details how to install and use custom fonts.


Themes

Skip fully supports iOS and Android system color schemes, as well as SwiftUI styling modifiers like .background, .foregroundStyle, .tint, and so on. You may, however, want to customize aspects of your Android UI’s colors and components that cannot be configured through SwiftUI’s standard modifiers. Skip provides additional Android-only API for this purpose. These SwiftUI add-ons allow you to reach “under the covers” and manipulate Skip’s underlying use of Compose. They are detailed in the SkipUI module documentation’s Material topic.