Few cents about my commits

RoboVM gradle plugin maintenance

|

RoboVM gradle plugin maintenance PR292, in it:

  1. added dependency to build task to force java compilation for every RoboVM tasks. Otherwise commands like launchIOSDevice will fail as java classes are not generated.
  2. added description to tasks:
    > gradle tasks
    MobiVM tasks
    ------------
    createIPA - Creates .ipa file. This is an alias for the robovmArchive task
    launchConsole - Runs a console app
    launchIOSDevice - Runs your iOS app on a connected iOS device.
    launchIPadSimulator - Runs your iOS app in the iPad simulator
    launchIPhoneSimulator - Runs your iOS app in the iPhone simulator
    robovmArchive - Compiles a binary, archives it in a format suitable for distribution and saves it to build/robovm/
    robovmInstall - Compiles a binary and installs it to build/robovm/
    
  3. added logic not extracting same file on every launch and do clear cache when new files extracted just to avoid bug cases when incompatible data stays in cache, check post by @dthommes. Similar as it was done for Idea plugin.
  4. added support for launching debugger, similar as @dukescript did for ‘maven plugin’:
    .. start with
    > gradle --no-daemon -i -Probovm.debug=true -Probovm.debugPort=7778 -Probovm.arch=x86_64 "-Probovm.device.name=iPhone SE" launchIPhoneSimulator
    .. attach with
    > jdb -attach 7778
    

Intellij Idea/Android Studio: never ending battle with annoying 'android-gradle'

|

bugfix #286, #285 and clear cache on new snapshot logic

|

W/L: Device system log and screenshoot capture for Idea (same as in Xcode)

|

Continue extending functionality for Linux/Windows port. Today device system log and screenshot capture were added. This functionality is available in Xcode on Mac but on Windows/Linux it would require external tool. It was required to adjust libmobiledevice bindings, some RoboVM classes and Idea plugin to make it available for user.
Whats new in idea Syslog functionality almost copies Android Logcat as code from AOSP was used as reference.

bugfix #279: Extremely slow dsymutil after Xcode 9.3 update

|

History dSYM generation heavily delayed on XCode 9.3
Fix PR282

Each Xcode update breaks something in RoboVM. This time it slowed down dsymutil that makes build time up to 30 min long and development process completely unusable. Small numbers on empty project, will use i386 slice from binary generated from empty framework sample:

With 9.3 dsymutil - 1 min 42 secs vs 6 secs:

> time (dsymutil -o test.dsym i386.bin)
real	1m42.932s
user	1m30.420s
sys	0m9.043s

With llvm-dsymutil (built it from source):

> time (./llvm-dsymutil -o test.dsym i386.bin)
real	0m5.813s
user	0m1.953s
sys	0m3.599s

Had no idea where to start from so started from old known bug robovm/#1126. In general it was complaining that it was not able to find out object file for about 90K+ symbols:

iOS 11.3 bindings

|

iOS 11.3 was released and using bro-gen binding were done in pr280. Most significant changes are to ARKit and StoreKit but following frameworks got their update as well:

RoboPods: Airbnb Lottie framework

|

New Lottie.framework pod. It is nice and shiny library for natively render After Effects vector animations, like this:

RoboPod is available from my own maven repo for intermediate results altpods:
Altpods are available as repository in github, also it is deployed it to ‘oss.sonatype.org’ which makes it available as maven artifact.

W/L: Adding swift libs to iOS sdk

|

RoboVM needs swift libraries as these has to be embedded into application in case any dependency is using swift. E.g. in case you favorite framework is built using swift. Precompiled libraries are available from https://swift.org. Seems to be easy but not so fast. Details bellow.

Intellij Idea/Android Studio: fixing annoying 'android-gradle' facet and dependencies

|

Previous post described how to remove android-gradle facet but as well with it there was module dependency resolution broken. It is time to fix it as well.

What was wrong

It was missed to handle properly populateModuleDependencies as result all modules were not populated with dependencies. As modules were moved out of Android gradle structures this tast shall be also forwarded to nextResolver.

Intellij Idea/Android Studio: fixing annoying 'android-gradle' facet

|

This post is outdated. Please follow to post.

Last year AS/Idea become real pain in case Java project is mixed with Android one. This results of “android-gradle” facet and project type to be created. And these project type doesn’t play nice with RoboVM/Java projects. Nothing is working.
There is already several issues about this in the field:

It is almost year as JetBrains fixes it. So there is a hack which allows to run it: