This is a trimmed down version of the Droidcon NYC app. The production version had several dependencies on 3rd party services, including our proprietary server. Setup would've taken a lot of effort. This version does not log in, and does not store anything on the server. As such, the only thing you might need to sign up for is a jwplayer trial account to get the video players working.
This includes both an Android and iOS native app which allows you to view the Droidcon NYC schedule and select talks you'd like to see. Also a few other minor things.
The UI's are native. Most code below the UI is written in Java and converted to Objective-C with j2objc, using Doppl tools and frameworks.
Shared code handles storage, networking, and logic (mostly). Libraries include gson, retrofit, and various Android db and threding libraries.
Doppl is at a very early stage, so setup may be somewhat brittle, but should work.
- Install Android Studio
- Install Xcode/Cocoapods
- Install j2objc runtime (slightly modded version)
- Config gradle with doppl maven repo
- Verify build works
- Run Android
- Run iOS
Grab the latest stable, currently version 2.2.
Install Xcode and Cocoapods. I would suggest finding and running a simple sample project, to minimize potential issues with the iOS build system.
Doppl uses a slightly modified j2objc runtime. This will likely be merged over time to keep the standard j2objc runtime, but for now, grab ours.
Extract the zip to a directory (avoid spaces in the path if possible).
Create/edit ~/.gradle/gradle.properties
Add this line:
dopplMavenDeploy=http://dopplmaven.s3-website-us-east-1.amazonaws.com/
Just an FYI, the doppl packages contain compiled object files. They're huge. That's primarily why they're hosted directly on s3. Future versions may maintain dependencies differently.
Add the following to ~/.bash_profile
export J2OBJC_HOME=[dist dir]
[dist dir] is the path where you installed the j2objc zip
Add the following to local.properties
sdk.dir=[android sdk dir]
j2objc.home=[dist dir]
baseurl=https://droidcon-server.herokuapp.com/
jwLicenseKey=[get a key from jwplayer.com]
releasePassword=[You make this. Only needed for release builds]
Run the following in the project directory
./gradlew lib:build
Note: doppl currently needs gradle 2.8. Android Studio will ask if you want to upgrade. Don't.
This build should take some time. If all works out, you should be in good shape for building apps.
Open the project in Android Studio. Make sure to select the "albany" flavor (this will be merged down to a single flavor soon). Run a standard Android build. This should install like any standard android app.
Note: Builds take longer than you might expect. The native gradle build gets run as part of a standard build. Future plans for the gradle plugin are to completely separate Android builds and the native j2objc/doppl compilation.
Run the following
./gradlew lib:j2objcXcode
This will update the Podfile, if necessary, and run 'pod install'.
Open the 'ios' folder in your file navigator. Open 'ios.xcworkspace' (not the xcodeproj file).
Pick a simulator and try to run it.
That was a lot of steps, but it should run, and you should see the app at this point.
The rest of this is from the original README. To be updated...
#################################
The server isn't open source at this time, but it would be relatively simple to modify the app to work with local data and seed it with json. If you'd like to use the server, get in touch (info [at] touchlab.co)
If you try to build this thing you'll pretty quickly find a few problems. One of them is that there are ton of projects referenced in the settings.gradle that you can't access. The other is that there are dependencies you can't find. You'll also notice 'ios' in the folders. This is sort of secret, but we're working on an extension of j2objc that will include better tooling and popular android libraries. There's an ios version of this app now. That's what this branch is. You can't build it, though. Sorry.
Kotlin has been updated to v1!
A large portion of the app is written in Kotlin. Android Studio support is pretty good at this point, although some parts need to be Java. Specifically anything that runs through annotation processing.
A fork of ORMLite that is Android specific and uses source generation instead of reflection. Performance is significantly improved, and it supports immutable fields as well as views. Note quite open source yet. Need to clean things up a bit. Was going to announce it at the conference, but time ran short. You can't actually build the app as-is with this, but either wait till the source is up, or just swap out with ORMLite. Its mostly compatible, after package renames (and some tweaking of a foreign collection).
Also, name isn't final. See how that goes.