Showing posts with label apps. Show all posts
Showing posts with label apps. Show all posts

Monday, February 14, 2011

book : "Start Small, Stay Small: A Developer's Guide to Launching a Startup"

In these tough economic times, some of you who are developers may think to start their own business. The Start Small, Stay Small: A Developer's Guide to Launching a Startup book is about developers who want to start their startup. David Welton has written a review on his blog : Start Small, Stay Small: A Developer's Guide to Launching a Startup.

I find the « Starting for the Right Reasons » discussion very useful : it's so easy to be wrong on this.

Here is an extract :
«
Most developers want to build software products for the wrong reasons.

Reason #1 : Having a Product Idea
If you have an idea for a product, odds are high that you have a product/project confusion.

A project is a software application you build as a fun side project.
[...]

A product is a project that people will pay money for. In other words, it's a project that has a market (a group of people who want to buy it). Without a market, a software application is just a project.

Most developers who come up with an idea know exactly how they will build it, but no idea how they will reach potential customers. They think a link on TechCrunch will drive hundreds, if not thousands, of sales.

On rare occasions the product-first approach works, but for the most part it's a recipe for failure.
»

Wednesday, December 8, 2010

TrackSite : backup

A new backup activity (screen) has been introduced in Track Site. It allows :
  • a local backup where the backup file is stored on the SD card
  • a remote backup where the backup file is sent to an email account as an email attachment. It's not a cloud-based backup, but the idea is to use the mailing box as a secure place to keep the backup and a way to provide ubiquitous access to the backup when needed

The remote backup automatically makes a local backup then sends the backup file as an attachment.

Some instructions are given in the email :
IMPORTANT :
keep the attachment file in a safe place as it may content private information

TO RESTORE :
1) save it on the target phone SD card, at the root (not in a directory),
2) then in Track Site, use restore (Menu -> More -> Restore)

Friday, November 12, 2010

Track Site : permissions that are asked for

Permissions have been reworked : Track Site doesn't ask anymore for READ_CONTACTS and SEND_SMS permissions.

Nevertheless it's still possible to send a bookmark by email or by text (SMS), as Track Site passes control to the stock communication apps (Gmail, Email, Messaging, ...) to do the job. Those stock communication apps already have been granted the required permissions (to read contacts and to send SMS /texting) by the user when they have been installed.


Permissions that Track Site previously asked of



Permissions that Track Site now asked for



Here is a screenshot of how permissions appears on the Android Market now

Thursday, November 11, 2010

obfuscation : how to use the obfuscation in the android app development cycle

This post deals with how the new obfuscation step modifies the app development cycle.

I use Eclipse to develop my app (Track Site). After some upgrade, when the app is ready to go live, I usually do the following tasks in order to publish it on the Android Market :
  1. adjust the version number
  2. export an unsigned version of the app from Eclipse
  3. sign it using the standard jarsigner tool
  4. align it using the standard zipalign tool

Obfuscation, as explained in Proguard, Android, and the Licensing Server, involves additional steps that replace the former 2) to 4) steps :
  1. adjust the version number the same way you've done it before
  2. obfuscation is performed using ant (not Eclipse) by issuing a command on the terminal

    mac:TrackSites $ ant release
    Buildfile: ~/workspace/TrackSites/build.xml

    As indicated in the Proguard, Android, and the Licensing Server post, the local.properties file has been modified to perform the signing step [3)] automatically (it still asks you for the passwords though), as well as the alignment one [4)].

    You end up with a signed, aligned and obfuscated app file in the bin/ sub-directory : the app is named SiteListActivity-release.apk. Exporting the unsigned app from Eclipse generates an app file named TrackSite.apk.

    It's interesting to note that the obfuscation process is done in another hierarchy (bin/classes) than the one used by Eclipse (bin/).

  3. as the obfuscation may have broken things, there is another quality assurance phase of the obfuscated app (SiteListActivity-release.apk), not of the non-obfuscated app that has already been tested from Eclipse (TrackSite.apk)

    This should be done :
    a) on the emulator :
    • start the emulator in the background with an AVD as a parameter
      mac:TrackSites $ emulator -avd a8w480 -wipe-data &
      [1] 536
      2010-11-11 10:14:15.172 emulator[491:903] Warning once: This application, or a library it uses, is using NSQuickDrawView, which has been deprecated. Apps should cease use of QuickDraw and move to Quartz.


      The -wipe-data option in the command line allows to « Reset the current user-data disk image (that is, the file specified by -datadir and -data, or the default file). The emulator deletes all data from the user data image file, then copies the contents of the file at -inidata data to the image file before starting. ».

      Here is the emulator state when it is started without the -wipe-data option
      And it's state with the -wipe-data option

      The list of devices + emulators connected to the computer is obtained with
      mac:~ $ adb devices
      List of devices attached
      HTxxxxxxxxxx device <----- the real device emulator-5554 device <----- the emulator

    • install the obfuscated app (SiteListActivity-release.apk) on the emulator using adb command line tool
      mac:TrackSites $ cd bin
      mac:bin $ ls Site*
      SiteListActivity-release.apk SiteListActivity-unsigned.apk
      SiteListActivity-unaligned.apk SiteListActivity.ap_
      mac:bin $ adb -e install SiteListActivity-release.apk
      1340 KB/s (94595 bytes in 0.068s)
      pkg: /data/local/tmp/SiteListActivity-release.apk
      Success
      mac:bin $

      The -e option in the command line « direct an adb command to the only running emulator instance. ».

      The app is now installed in the emulator where it can be tested :

    b) on a real device : it's pretty much the same process as above but on a real device instead of an emulator.

    When installing the app on the device, you may encounter an error if a previous version of the app has been installed from the market :
    mac:bin $ adb -d install SiteListActivity-release.apk
    821 KB/s (94595 bytes in 0.112s)
    pkg: /data/local/tmp/SiteListActivity-release.apk
    Failure [INSTALL_FAILED_ALREADY_EXISTS]
    mac:bin $

    By the way, please take note of the -d option in the command line « direct an adb command to the only attached USB device. ».

    The solution here is to remove the app on the device : Menu -> Settings -> Applications -> Manage applications then select the application to uninstall, click on the "Uninstall" button, confim ... it works ! But there's a better solution using adb :
    mac:bin $ adb -d uninstall fr.androidtobe
    Success
    mac:bin $


    You can now try to install just like before :
    mac:bin $ adb -d install SiteListActivity-release.apk
    839 KB/s (94595 bytes in 0.110s)
    pkg: /data/local/tmp/SiteListActivity-release.apk
    Success
    mac:bin $

  4. Ensure everything works and that the obfuscation has not broke anything. Then publish the obfuscated app (SiteListActivity-release.apk).

    If something has been broken during the obfuscation step, look for clues in the « But Wait, My App is Crashing Now » part of the Proguard, Android, and the Licensing Server post

Sunday, October 31, 2010

"setCPU for Root Users" saves the battery of your Android device

I've used setCPU for Root Users on my Nexus and now on my Desire HD to save battery : setCPU adjusts CPU speed to what is needed to perform the required tasks.



setCPU lets you adjust the lower and upper speed for your CPU. There's a "device selection" function in the menu that lets setCPU perform all the computing and suggest the appropriate values for your hardware. Here's a screenshot for the Desire HD.



The "Time in State" section from the "info" tab lists the time your phone has spent at different speeds. From the following screenshot, it appears the Desire HD CPU speed scales between 4 speeds from 245 MHz to 1024 MHz, spending most of its time between the upper and lower speed. The same screen on the Nexus One shows many different speeds, the Nexus spending most of its time on the lower speed (it naturally depends on how you use your Nexus).



As said in its name, setCPU for Root Users require root access.Rooting instructions can be found here :

Head to setCPU for Root Users's official page to get more informations on setCPU, specially on how to use setCPU to overclock / underclock your CPU.

Scan the following QR-code to download setCPU from the Android Market.

Saturday, October 30, 2010

Desire HD Ace : how to temporary root - [GUIDE] Temp Root [VISIONary by PaulOBrien]

Right now, there's no permanent rooting solution for the new HTC Desire HD (for UK).


But there's a temporary root solution provided by MoDaCo with the VISIONary app available on the Android Market.

Friday, October 29, 2010

Track Site : how to backup and restore your bookmarks

Before changing Android phone or making a factory reset, you need to backup your Track Site bookmarks before, in order to restore them on your new Android phone or after the factory reset.


1) Backup the bookmarks

To backup, go to "Menu" --> "More" --> "Backup".



The "track_sites.ini" file is created at the root of the SD card. The backup erase any file with the same name.


2.1) Factory reset

If you just make a factory reset, keeping the same phone, you don't have anything more to do, as long as you don't erase your SD card or format it : proceed with the factory reset, then restore your bookmarks following the instructions of section 3) below.

If you want to change your SD card or format it, you need to keep the backup (the "track_sites.ini" file) in a safe place before changing your SD card or formatting it, and then follow the instructions in the next 2.2) section


2.2) Transfer to a new phone

If you change your Android phone or your SD card or format your SD card, you need to transfer the "track_sites.ini" file from your old phone to the root of the SD card on your new Android phone.

This can be done in 2 ways :
  1. The easiest way (recommended) is by connecting your phone to a desktop computer (PC / Mac / Linux) and mounting it as an USB drive.

    This is direct on Mac.
    You need a driver on Windows.

    You just have to copy the "track_sites.ini" file from your old phone phone to the new one (or to a safe place on your computer if you want to format your SD card or change it).
    Then, unmount or disconnect the new phone from USB in order to be able to access the SD card contents.
  2. Developers can use the adb tool (see 2.2 bis) below).

3) Restore the bookmarks

To restore your bookmarks, go to "Menu" --> "More" --> "Restore"
The "track_sites.ini" file is read from the root of the SD card and it's content is loaded in the Track Site app.

Be aware of not loading the file multiple times as file bookmarks are added to the ones that may already exists.



2.2 bis) The adb (hard) way for the developers

The "USB debugging" option should have been activated on both phones ("Settings" --> "Applications" --> "Development" --> "USB debugging").

The full file path is /mnt/sdcard/track_sites.ini

And here is how to get it and transfer it :
  • a) ensure your phone is available

    mac:~ $ adb devices
    List of devices attached
    xxxxxxxxxxx6 device
  • b) ensure the file is where you think it is

    mac:~ $ adb shell
    # ls -l /mnt/sdcard/tra*.ini
    ----rwxr-x 1 system sdcard_r 30719 Oct 28 12:57 /mnt/sdcard/track_sites.ini
    # exit
    mac:~ $
  • c) then go to the directory where you want to download the file (Downloads in the following example) and pull it

    mac:~ $ cd Downloads/
    mac:Downloads $ adb pull /mnt/sdcard/track_sites.ini
    847 KB/s (30719 bytes in 0.035s)
    mac:~ $
  • d) then connect the new phone as in a).

    Ensure the old phone is disconnected from your system or you end up with 2 devices (2 lines) with the adb devices command.

    mac:Downloads $ adb devices
    List of devices attached
    xxxxxxxxxxx6 device
    yyyyyyyyyyy9 device
    mac:~ $
  • e) remove any /mnt/sdcard/track_sites.ini file from the destination.

    mac:Downloads $ adb -s yyyyyyyyyyy9 shell
    $ ls -l /mnt/sdcard/track_sites.ini
    ----rwxr-x system sdcard_rw 1241 2010-10-29 11:03 track_sites.ini
    $ rm /mnt/sdcard/track_sites.ini
    $ ls -l /mnt/sdcard/track_sites.ini
    /mnt/sdcard/track_sites.ini: No such file or directory
    $ exit
    mac:~ $
  • f) push the track_sites.ini file to its final location /mnt/sdcard/track_sites.ini.

    mac:Downloads $ adb -s yyyyyyyyyyy9 push track_sites.ini /mnt/sdcard/track_sites.ini
    1505 KB/s (30719 bytes in 0.019s)
    mac:~ $

Tuesday, October 19, 2010

ProGuard obfuscation : error Could not load definitions from resource proguard/ant/task.properties

I've just tried to obfuscate my TrackSite app with ProGuard following Dan Galpin's instructions from Proguard, Android, and the Licensing Server.

I've encountered the « Could not load definitions from resource proguard/ant/task.properties » error during the ant release build :

compile:
[javac] /Users/raph/droid/android-sdk-mac/tools/ant/ant_rules_r3.xml:336: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
[javac] Compiling 1 source file to /Users/raph/droid/workspace/TrackSites/bin/classes

-dex-obfuscate:
[taskdef] Could not load definitions from resource proguard/ant/task.properties. It could not be found.
[delete] Deleting: /Users/raph/droid/workspace/TrackSites/obf/original.jar
[jar] Building jar: /Users/raph/droid/workspace/TrackSites/obf/original.jar

BUILD FAILED



The add-proguard-release.xml provided with the Proguard, Android, and the Licensing Server contains the following definitions at lines 19 and 29

<property name="proguard-jar" value="${proguard.dir}/proguard.jar" />
...
<taskdef resource="proguard/ant/task.properties" classpath="${proguard-jar}" />


This refers to a task.properties file. According to the article Obfuscating Your MIDlet Suite from the Sun Developer Network (look for section « Ant Script ») this file is included into the proguard.jar jar file distributed with ProGuard, inside the .jar file.

Then, the solution is to update the property at line 19 to point to the real location of the proguard.jar archive, that is located in the lib/ sub-directory. So the property's value should be « value="${proguard.dir}/lib/proguard.jar" »

<property name="proguard-jar" value="${proguard.dir}/lib/proguard.jar" />


The ant release build then looks like :

compile:
[javac] /Users/raph/droid/android-sdk-mac/tools/ant/ant_rules_r3.xml:336: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
[javac] Compiling 1 source file to /Users/raph/droid/workspace/TrackSites/bin/classes

-dex-obfuscate:
[delete] Deleting: /Users/raph/droid/workspace/TrackSites/obf/original.jar
[jar] Building jar: /Users/raph/droid/workspace/TrackSites/obf/original.jar
[proguard] ProGuard, version 4.5.1
[proguard] Reading input...
[proguard] Reading program jar [/Users/raph/droid/workspace/TrackSites/obf/original.jar]
[proguard] Reading library jar [/Users/raph/droid/android-sdk-mac/platforms/android-8/android.jar]
[proguard] Reading library directory [/Users/raph/droid/workspace/TrackSites/libs]
[proguard] Initializing...
[proguard] Note: the configuration refers to the unknown class 'com.android.vending.licensing.ILicensingService'
[proguard] Note: there were 1 references to unknown classes.
[proguard] You should check your configuration for typos.
[proguard] Ignoring unused library classes...
...

Sunday, August 8, 2010

Track Site 1.02.44 - adding support for QVGA (240x320) screen devices (Xperia X10 Mini and the likes)

Following Shantanu's post on QVGA screen (240x320) devices support (Android Dev Tip: App Not Showing on X10 Mini Marketplace), I just release a new version of Track Site (1.02.44).

Some screenshots from the emulator :





The screen is tiny but it works fine :

Drop me an email or add a comment (better) to let me know how it's behave on a real device.

Wednesday, July 7, 2010

Track Site 1.02.42 - an improved user interface

Track Site user interface has been improved a lot over the last releases. Here is a review of the improvements.

The main screen

On the upper part of the main screen are, from left to right :
  • the bookmarks import button, which allows to import bookmarks from the stock Android browser. Just touch it and the bookmarks that have been defined since the last import will be imported into Track Site under the tag « imported »
  • the multiple tags filter display, which shows the tags on which the bookmarks are filtered on
  • the multiple tags filter button, which allows to set the multiple tags filter
The filtered bookmarks are displayed bellow.


The multiple tags selector screen

This screen appears when the multiple tags filter button has been touch. Here, you can :
  • sort the tags alphabetically ; please note that selected tags have a green check on the right and that checked tags are grouped before unchecked tags to allow for better understanding
  • just touch a tag to check or uncheck it ; please note that the bookmarks will be displayed only if they are tagged by all the bookmarks that are in the filter
  • the clear button uncheck all the tags in one touch
  • the cancel button allows to return to the main screen without changing the tag filter
  • the Ok button activates the new tag filter


The bookmarks editor screen

This screens allows to edit bookmarks information :
  • edit bookmark's information : the name, the description, the URL, the tags (touching the button displays the tags management screen)
  • save your changes, making them permanent
  • delete the bookmark : a confirmation dialog appears to confirm your decision as deleted bookmarks can't be undeleted
  • just return to the main screen, discarding any change that can have been underway

There are 2 ways to get on this screen :
  • using the menu button and choose the « create » or « edit » menu items
  • by long pressing on the bookmark, then touching « create » or « edit » items on the contextual menu that appears above the screen


The multiple tags management screen

This screen allows for bookmark's tag management :
  • selecting one or more tags
  • defining new tags ; created tags are automatically checked

Sunday, June 13, 2010

Track Site 1.02.34 - french language localization

French language support has been introduced in the version 1.02.34 of Track Site.

Tuesday, June 8, 2010

Track Site 1.02.32 - import bookmarks from stock browser

This new release of Track Site (v1.02.32) introduces the import of stock browser's bookmarks. Import is accessible through « Menu », then « More » and finally « Import browser's bookmarks ». Bookmarks that have been created since the last import are imported and tagged with « imported». Bookmarks are imported into Track Site whether they already exists or not.

Wednesday, June 2, 2010

Track Site - 1.01.31 - now build for Eclair (Android 2.1)

The 1.01.31 version of TrackSite is now build for Android 2.1 (aka Eclair). It may still work on Android 1.6 (Cupcake) devices.
This version introduces a local database to store the bookmarks and the additional infos — the description and the tag list. More to come on this side as the stock browser's bookmarks are also stored in a database.
Introducing a local database make the app working even when the SDcard has been removed.
Existing bookmarks from /sdcard/sites.ini file are automatically loaded into the database at first launch.

Friday, January 1, 2010

Track Site - the QR code

Track Site can be found on the Android Market using it's QR-code directly from the Android phone.



The Barcode scanner app should be installed on the phone, as stated by PointGPhone site.

Thursday, December 31, 2009

Track Site - list font size preference

Just added a list font size preference to let the user adjust the font size to his/her needs and to the device screen size and density.

Wednesday, December 30, 2009

Track Site - improved portrait layout for small screens

The UI has been reworked in version 1.01.25 to be more usable on small screens in portrait mode. Here are some screenshots of the new UI in portrait mode.




The edit screen has also be reworked to give more space to the entry fields, both in portrait and landscape mode.



The version 1.01.25 is available on Google's Android Market and Archos's AppsLibs market.

Saturday, December 26, 2009

Track Site - description of the goal and functions

Do you ever want to add a note to an article you just read while crawling the web ?
Or just add a mark on an article to remember to read it later ?
Or wonder what is the best folder to store a new bookmark ?
Or can't remember the login you used to register on a website ?
Or the mail address you used to subscribe to the site's newsletter ?
...

Most browsers does not allow to add meaningful notes on bookmarks !
So here is the "Track Site" app.

This App allows for sites's bookmarking, giving them a name, adding an optional description, and optionally adding some tags.
Those information are stored in a plain text file ("/sdcard/sites.ini").
A html file of all bookmarks can be generated ("/sdcard/track_sites.html").
And bookmarks can be shared with others by email or SMS.

Look for "Track Site" on Google's Android marketplace and on Archos's AppsLib marketplace.

Aldiko - the free ebook reader on Android (epub format)

Aldiko is a great Android App to read your ebooks right on your mobile phone.




You can import the epub ebooks you already own from the sdcard. Non epub format DRM-free ebooks can be converted to epub format using Calibre software.

As editors like O'Reilly, Manning, Mark Murphy's CommonsWare have started to release their books in DRM-free ebook format, the mobile as an ebook reader is becoming more and more a reality.

The QR-code to access the Aldiko app on the Android Market is here.

The app is also announced to be available on the alternative SlideMe app market on the Aldiko blog post but I can't find it.

Saturday, December 19, 2009

BlogAway - how to post on blog from Android devices

This post is made from BlogAway, a client app that allows posting and viewing posts on blog directly from an Android device.


From the app, you can publish a new post, save a draft online or on the phone, add links, add photos and movies.


My first user experience was rather tough as I lost the post I wanted to make. I think there should be more confirmations when user actions may end by some lost of content.


But overall, this app is a very good idea that goes in the good direction.