Cookpit
Introduction: Flickr Client implementation for Android/iOS with C++ core and Djinni
Tags:
[Deprecation] It is safe to say that this techique to share code between Android and iOS is deprecated. I would recommend looking at other means to do this technique, e.g. Kotlin Mutliplatform Mobile etc. Some of my repositories also move towards using KMM instead.
Cookpit
Flickr API implementation for Android/iOS with C++ core
Requirement
python(required for gyp)- xcode &
xcodebuild - android ndk and
ndk-buildon your PATH to build for android - Configure the paths to your Android SDK
and Android NDK in your
local.properties
Installation
- Run
make libto build xcodeproj for shared library. - Run
make iosto build library for iOS project, located under ios/ - Run
make androidto triggerndk-buildfor Android project, located under android/
Building
- Running any
makecommand will automatically download gyp and create.xcodeprojfiles suitable for developing on each platform. - Please consult iOS and Android folder for more detail on the application layer.
Make targets:
clean- clean all generated filesios- build library namelibcookpit.a,libcookpit_ios.asuitable for iOSandroid- build library namelibcookpit_android.sosuitable for Android
Tools
- gyp - generates xcode project to develop iOS and C++ (nobody likes adding files and configure project manually)
- djinni - generates all bridging code for C++, Java, Objective-C/C++
Folder structure
Cookpit
├── android/ # Android app (Android studio project)
├── cpp/ # Core cpp code and xcodeproj for develop C++
├── djinni/ # Djinni's interface files
├── ios/ # iOS app (open .xcworkspace)
├── utils/ # tools for tedious works, glob, clang-format etc.
├── vendors/ # 3rd party libraries and 3rd party libraries for C++ (gyp, djinni is also here)
├── common.gypi/ # gyp configuration file (common)
└── cookpit.gyp/ # gyp configuration file for this project
