Skip to content

sayler8182/Forms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Forms

Swift Version

Forms is all in one iOS framework

Features

  • Pure Swift Type Support
  • Modular
  • Forms - Forms framework
  • FormsDemo - All features demo

Frameworks

Kits

Kits extend Forms module

Requirements

  • iOS 10.0+
  • Swift 5.2
  • Xcode 11.0+

Last stable version
XCode 11.5 (11E608c)

Installation

Download project and run ./build.sh script

Forms.framework
FormsAnalytics.framework
FormsAnchor.framework
FormsAppStoreReview.framework
FormsCalendarKit.framework
FormsCardKit.framework
FormsDatabase.framework
FormsDatabaseSQLite.framework
FormsDevice.framework
FormsDeveloperTools.framework
FormsHomeShortcuts.framework
FormsImagePickerKit.framework
FormsInjector.framework
FormsLocation.framework
FormsLogger.framework
FormsMapKit.framework
FormsMock.framework
FormsNetworking.framework
FormsNetworkingImage.framework
FormsNotifications.framework
FormsPermissions.framework
FormsPager.framework
FormsSideMenuKit.framework
FormsSocialKit.framework
FormsTabBarKit.framework
FormsToastKit.framework
FormsTransitions.framework
FormsUtils.framework
FormsUtilsUI.framework
FormsValidators.framework

External dependencies

./Dependencies contains external dependencies

AppAuth.framework
FBSDKCoreKit.framework
FBSDKLoginKit.framework
FirebaseAnalytics.framework
FirebaseCore.framework
FirebaseCoreDiagnostics.framework
FirebaseCrashlytics.framework
FirebaseInstallations.framework
FirebaseInstanceID.framework
FirebaseMessaging.framework
GTMAppAuth.framework
GTMSessionFetcher.framework
GoogleAppMeasurement.framework
GoogleDataTransport.framework
GoogleDataTransportCCTSupport.framework
GoogleSignIn.framework
GoogleUtilities.framework
PromisesObjC.framework
Protobuf.framework
nanopb.framework

To update dependencies You should use

carthage bootstrap

and copy downloaded framework to ./Dependencies folder

Demo

FormsDemo contains demo implementations for some providers etc. Just check FormsDemo/FormsDemo/Source/Implementations folder

Recommended tools

Custom framework

Frameworks should have consistent build settings:

  • Proper version
  • Build Active Architecture Only -> No (for Debug)
  • iOS Deployment Target -> iOS 10.0
  • Framework Search Path -> $(inherited) $(PROJECT_DIR)/../Dependencies
  • Other Linker Flags -> -ObjC
  • Other Swift Flags -> -Xfrontend -warn-long-function-bodies=1000 -Xfrontend -warn-long-expression-type-checking=1000
  • Swift Language version -> Swift 5
  • Defines module -> NO
  • Add to Forms-Universal-Framework
  • Add to build.sh and build_incremental.sh

Contribution Guide or Questions

You can submit issues, ask general questions, or open pull requests.

Credits

The Forms framework is inspired by:

Integration

  1. Remove storyboard file and key from Info.plist
  2. Add Config subfolder for each target
  3. Configure Forms and Assemblies in AppDelegate
  4. Configure external dependencies
  5. Configure Forms frameworks
  6. Add trimming architectures script
  7. Add group identifier
  8. Add URL Type in Info.plist
  9. Add Settings.bundle
  10. Add HomeShortcuts
  11. Add Crashlytics configuration
  12. Add Lint
  13. Add R.swift

NOTICE: Remember about AppDelegate and SceneDelegate settings

Exist integrations

The Forms framework is already integrated in:

WineBook - project inspired by Stanton Lab with mocked API

License

MIT license. See the LICENSE file for details.

FAQ

If your project doesn't compile try

  • Add LocalAuthentication.framework without Signing
  • Add StoreKit.framework without Embedding
  • Add Google frameworks without Embedding
  • Add -Objc in Other linker flags
  • Add -lc++ in Other linker flags - eg. for Crashlytics
  • error: Couldn't IRGen expression, no additional error this error may be related with FBSDK version (x6.5.2 is the latest stable version)
  • Add Google frameworks without Embedding
  • could not build Objective-C module this error may be related to Defines module option. (should be NO)
  • CFBundleIdentifier Collision Error - in Embed Frameworks set Code Sign On Copy to TRUE

FAQ dependencies

If dependency doesn't compile, try build it manually

  • Disable bitcode
  • set Build Active Architecture Only to No
  • Add -ObjC other linker flag
  • Build for Simulator and Generic Device
  • Copy lipo.sh script to Products directory
  • Run lipo.sh to merge architectures
  • Copy fat framework to Your project

About

Forms is all in one iOS framework

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages