4 ms·
Not mentioned are the command line dev tools for working with the device. adb[1] is really handy on Android. You can easily upload packaged builds, stop and st
by rogerbinns 13y ago
Not mentioned are the command line dev tools for working with the device. adb[1] is really handy on Android. You can easily upload packaged builds, stop and start apps, transfer files, invoke anything via Intents (am), get a list of installed apps, and use the shell to invoke other things (eg `pm clear` to reset an app to first user experience).
Doing the same with iOS development is painful. Apps for the simulator end up in arbitrarily named directories so you can at least inspect their sandbox and can be invoked via extremely long command lines. But forget about apps on the device itself. libimobiledevice has reverse engineered some of it, but for example there is no way to start or stop an app from the command line.
I was doing some FTUE[2] work on both Android and iOS with a third party app, and needed to stop it, clear the data and start it again. For Android I just had to press up arrow and return. For iOS I had to do multiple gestures on the device, then use an app named iFunBox (really) to manually clear out the sandbox, and then launch the app again via touch.
[1] http://developer.android.com/tools/help/adb.html http://developer.android.com/tools/help/adb.html
[2] First Time User Experience
- archgrove 13y agoWhy not just use the XCode organiser (via AppleScript if you want automation) to delete applications or download/upload app sandboxes? There's no need to touch the phone or use "iFunBox" for this.
- rogerbinns 13y agoI only care about one file in the sandbox and the organizer doesn't let me upload/download just that one file. I also can't find upload/download in the Xcode Applescript dictionary. The Xcode also only shows a subset of applications. My particular use case is that other developers have written apps using a library that I have authored. I then update the behaviour of the library for their needs based on interactions between the app and configuration for the library.