Skip to content

Latest commit

 

History

History
182 lines (119 loc) · 7.47 KB

README.mdown

File metadata and controls

182 lines (119 loc) · 7.47 KB

AppCoreKit

AppCoreKit is an application framework designed to improve productivity while creating Apps for iOS. This is the result of a 3 years experience at Wherecloud and is a production framework that shipped more than 20 apps.

AppCoreKit does not offer out of the box UI components but the technology to help you:

  • Manage your data
  • Automatic serialization (KeyValue Store, Core Data)
  • Objective-C runtime apis
  • Type and data structure conversions
  • View controllers and containers
  • Ui vs. Models synchronization with bindings
  • Appearance customization with cascading stylesheets
  • Responsive view layouts with a hbox/vbox model
  • Non homogenous Forms
  • Maps
  • Network
  • And more.

Keep in mind that AppCoreKit is a toolbox. It is non intrusive so that you can cherry pick features and learn how to use it at your own pace. The framework is splitted in several modules with the following dependencies:

Screen Cast and high level description of the framework are available at http://www.appcorekit.net

Lets go to http://www.wherecloud.com/apps.html to get an idea of some of the apps we made at Wherecloud based on the AppCoreKit framework.

A sample repository with binary versions of the framework is available at https://github.com/wherecloud/appcorekit-samples

Minimum system requirements

AppCoreKit supports all iOS versions 4.3 and higher.

The iOS 7 integration is in process. You can build your app and start using the framework on iOS7 without any problem. As we are in transition between XCode4 and XCode5 and we must support build with or without the iOS7 SDK, we added a ENABLE_XCODE5 pre-processor macro defined in CKConfiguration.h that enables iOS7 features that are not available while working in XCode4. You must uncomment this preprocessor macro while working in XCode5 to profit of the full integration with iOS7.

Additional dependencies

ResourceManager

Since the begining the the version 2.2.0 (Master), AppCoreKit integrates a new Resource management framework as a weak dependency. This framework called ResourceManager allows live update of your application when you modify your application's resources from 1 or several repositories. You can provide your XCode project folder when working in the simulator or a dropbox folder when working on your device to see your application reload when you modify or add images, strings files, sounds, stylesheets, layouts, color palettes, mappings, ...

If this framework is not linked with your app, the AppCoreKit will use the resources from your application's main bundle. If the framework is linked, you can specify one or several repository you want to sync with.

You can find a pre-compiled version of ResourceManager and sample integration in our sample repository at https://github.com/wherecloud/appcorekit-samples

Or you can get the sources of this framework and more informations at : https://github.com/wherecloud/ResourceManager

ResourceManager is also available as CocoaPods:

pod 'ResourceManager'

Installation

The recommended approach for installing AppCoreKit is via the CocoaPods package manager, as it provides flexible dependency management and dead simple installation. For best results, it is recommended that you install via CocoaPods >= 0.19.1 using Git >= 1.8.0 installed via Homebrew.

Using CocoaPods

Adds the following lines in you PodFile

platform :ios, '5.0'

pod 'AppCoreKit'

As a framework

Compiling the framework

AppCoreKit is built as a Static Framework. Static Framework are not natively supported by Xcode and requires some additional specifications to get compiled properly.

Copy the following file:

./static Frameworks.xcspec

To:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications

And

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Xcode/Specifications

IMPORTANT : You will have to copy this file each time you update Xcode to a newer version.

Compiling the API Documentation

AppCoreKit provides a "Documentation" target that generate a docset using the public header files and the additional programming guides in the Documentation folder. This target is a script base on "appledoc". To install appledoc, follow the installation procedure here : https://github.com/tomaz/appledoc

Using AppCoreKit in your own App

  • Drag'n'drop the AppCoreKit projects as subprojects in Xcode.

  • Adds the AppCoreKit.framework link dependency to your target in the build phases settings.

  • Add the following frameworks and libraries dependencies to your project in the build phases settings:

libstdc++.dylib, 
UIKit, 
Foundation, 
CoreGraphics, 
AddressBook, 
CoreData, 
QuartzCore, 
CoreLocation, 
MapKit, 
MediaPlayer, 
CoreFoundation, 
CFNetwork, 
SystemConfiguration, 
MobileCoreServices, 
Security,
AdSupport.
  • Adds the following Header Search Path in your build settings ( HEADER_SEARCH_PATHS ):
/usr/include/libxml2

  • Adds the following link flags in your build settings (OTHER_LDFLAGS):
 -ObjC -all_load -lxml2 -licucore -lz -weak_library /usr/lib/libstdc++.dylib

  • As Xcode do not natively support static frameworks especially for resources, you'll need to add a post build phase if you'd like to use some components. In the build phase for your target, add a "Run Script" build phase and add the following script :
FRAMEWORKS_BUILD_PATH="$TARGET_BUILD_DIR"

# Modify the following path to point on your AppCoreKit sources folder!
APPCOREKIT_PROJECT_PATH="$HOME/Projects/Frameworks/AppCoreKit/"    

sh "$APPCOREKIT_PROJECT_PATH/copy_framework_resources.sh" 
            --system-developer-dir "$SYSTEM_DEVELOPER_DIR"
            --executable-name "$EXECUTABLE_NAME" 
            --frameworks-dir "$FRAMEWORKS_BUILD_PATH" 
            --target-build-dir "$TARGET_BUILD_DIR" 
            --project "$PROJECT" 
            --project-dir "$PROJECT_DIR"

Credits

If you have any comments, suggestions, question or information request, please contact us at [email protected].

Want to keep updated? Follow us on Twitter - @appcorekit.

License

Copyright 2009-2013 WhereCloud, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.