As of this writing, the Android version now supports Android 4.2
and above.
## Architecture Overview
The diagram below illustrates the architecture of ScratchJr and
how the iOS (functional), Android (functional) and pure HTML5 (future)
versions share a common client.
![Scratch Jr. Architecture Diagram](doc/scratchjr_architecture.png)
## Directory Structure and Projects
This repository has the following directory structure:
*<tt>src/</tt> - Shared Javasript code for iOS and Android common client. This is where most changes should be made for features, bug fixes, UI, etc.
*<tt>editions/</tt> - Assembly directories for each "flavor" of ScratchJr. These symlink to src for common code, and could diverge in settings and assets.
*<tt>free/</tt> - Free edition JavaScript, including all shared code for all releases
*<tt>android/</tt> - Android port of Scratch Jr. (Java, Android Studio Projects)
*<tt>ScratchJr/</tt> - Android Studio Project for ScratchJr Android Application
*<tt>bin/</tt> - Build scripts and other executables
*<tt>doc/</tt> - Developer Documentation
*<tt>ios/</tt> - XCode project for iOS build.
## Building ScratchJr
To build the Android version, you need to have a system equipped with Android Studio. To build the iOS version, you need to have a Mac with XCode.
Once these are installed, select the appropriate target in XCode or the appropriate flavor/build variant in Android Studio. To build in Android Studio, open the project <tt>android/ScratchJr</tt>. To build for iOS in XCode, open <tt>ios/ScratchJr.xcworkspace</tt> as ScratchJr uses CocoaPods.