We're using this combination of approaches for a large scale mobile/web project that currently exists in the IOS AppStore, and will soon be released on Android and the web:
- One main project that uses compiler directives to handle specific platform logic and elements
- Compiler directives to handle specific platform logic within the main project codebase
- A separate project for our video and interactivity engine, which is mostly platform independent, using switch statements for platform specific logic
- One shared SWC for graphical assets. Platform specific elements are prefixed with the platform and an underscore. Compiler directives are used to specify which movieclips get displayed on screen
- Ant scripts to do the compiling for the various platforms
- Native Extensions to interface with hardware specific features
We use some commercial, some open source, and some homemade ANE's for things like AppStore integration, social media features, network monitoring, notifications and inter-app communications.
- com.adobe.extension.NetworkInfo.ane
- com.milkmangames.extensions.EasyPush.ane
- com.milkmangames.extensions.GoViral.ane
- com.milkmangames.extensions.StoreKit.ane
(I have no affiliation with milkmangames)
I'm currently writing an Android ANE to handle inter-app communication using Intents. It's a project I'm open sourcing at:
https://github.com/interactivenyc/ANESampleProject.
I'm currently stuck on a problem there and will be posting a question very soon with the details if anyone is interested in following that project. The project setup is fairly well described in the ReadMe file displayed on the front page of the project.