Showing posts with label Android. Show all posts
Showing posts with label Android. Show all posts

Friday, June 6, 2014

Float Mail: An Innovative Email App for Android

Float Mail: An Innovative Email App for Android



FloatMail enables Android users to access their email from within any application including full screen apps. It is an extension of an app called Floatifications.

Here is a screen shot that illustrates a Floatification:



Here is a video of a similar extension for SMS messages. It is an excellent illustration of the convenience that Floatifications provide:



Description
Receive email from within any app, without pausing the app, including fullscreen apps.

This is an extension for the app Floatifications published by Rob J. The floatifications app *must* be installed prior to installing FloatMail:
https://play.google.com/store/apps/details?id=robj.floating.notifications

The app supports:
. Displays sender name and subject
. Display full email body
. Commands:
  - Open: Opens the email app inbox
  - Delete: Deletes the Floatification
  - Reply: Reply from within the email app
  - Quick Reply: Reply from within the Floatification
  - Delete All: Deletes all recent FloatMail Floatifications
  - Delete Message: Deletes the email message from the remote server
  - Mark as Read: Marks the message as read on the remote server

The app works with nearly all email accounts by supporting the following protocols: IMAP, IMAP-IDLE (Push Mail), POP3 & Exchange via EWS or IMAP.

Using this extension means you can do away with the status bar if you wish, disable your normal email notifications, and still be notified within FN for Email.

Available from GooglePlay:

https://play.google.com/store/apps/details?id=com.maxlabmobile.floatmail

Cheers!
Glen

Saturday, November 16, 2013

Out of Office: Email Auto Responder

New Android App!

Description

Out of office email auto responder. Setup a SINGLE out of office message for ALL of your email accounts. Or create a different out of office message for individual accounts, senders, subjects and other properties. Update your out of office message any time from anywhere for all your accounts from a single app!

OoO does it's work *entirely* on your device, working in the background. Your email is safe and your data never leaves your device. None of your information is ever sent elsewhere. Period.
* Ability to set a global out of office message for all accounts
* Ability to override the default out of office message with specific messages for individual accounts, senders, subjects and more.
* Also functions as a general purpose email auto responder [More development to be done]
* Schedules: Ability to only auto reply between 9pm and 6am for example
* Notifications: Supplies optional basic notification support for new emails
* History: Shows a record of all auto replies made by the application

Supports IMAP, IMAP-Idle, POP3, and Exchange view EWS and IMAP



Free banner ad supported version available here:

Please contact support  At maxlabmobile.com for feature requests and issues. Thanks.

Friday, October 18, 2013

eNotify supports Sony Smartwatch and SW2

About eNotify:

eNotify provides alerts and notifications for E-mail and SMS messages. Highly configurable, eNotify supports rules with custom alert sounds for different accounts, senders, subjects, recipient addresses, phone numbers and more. Easily silence day-to-day background noise and stay aware of priority e-mails and SMS messages.

* Instant Notifications and Alerts via Push Email
* iOS style Popup notifications
* System Tray Notifications
* Pebble smartwatch and Sony smartwatch Notifications
* LED Notifications
* Sound and Ringtone Alerts
* Text to Speech Alerts
* Custom Vibration Alerts and more.
The app works with nearly all mail services by supporting the following protocols: IMAP, IMAP IDLE (Push Email), POP, POP3, and Outlook Exchange via EWS or IMAP [No Exchange Active Sync]

eNotify does it's work *entirely* on your device, working in the background. Your email is safe and your data never leaves your device. None of your information is ever sent elsewhere. Period.

https://play.google.com/store/apps/details?id=com.hermes.enotifylite

About Sony Smartwatch:

This Android™ compatible watch keeps you discreetly updated & your hands free

http://www.sonymobile.com/gb/products/accessories/smartwatch/

How does it work?

eNotify controls which emails are sent to your watch. Example use case:

I can setup an alert for emails from my boss that arrive between 8am and 5pm between Monday and Friday. When an email arrives matching this description, it will be sent to your wrist along with a vibration. You can read the full email message on the watch.

Enjoy!!

Saturday, July 20, 2013

eNotify is Quality!


eNotify Quality Report

eNotify provides private and secure direct local notification for incoming email and SMS messages.. Highly configurable, eNotify supports complex rules with custom alert sounds for different accounts, senders, subjects, recipient addresses, battery events, and cellular data events. Easily silence day-to-day background noise and stay aware of those important emails!

It is available for both Android and iOS. This article looks at the Android version.

eNotify Crash Report:

Crashes:
As far as the crashes, I'm very pleased with only having 2. It is really good considering the app has been under active development throughout its entire lifetime [~3 months]. It has had over 40 upgrades including 2 rounds of major new feature sets. It has processed tens of thousands of emails some with bespoke drivers. To achieve this without sacrificing quality has been a remarkable result for us.

ANRs
What's an ANR? It stands for "Application Not Responding". This can happen for example when the app does something that takes too long to complete. In this scenario, it can prevent the UI from  responding to the user. You will generally see this after the device has been stuck for 5 seconds or more. When this happens, the user is shown a dialog with options "Force close" or "Wait".

eNotify has not had any ANRs thus far in either the full or lite versions. This is really unusual considering the amount of processing and network activity that this app does. The app is essentially a full email client in terms of the processing. To have no ANRs shows that our design and internal structure is solid and functioning reliably.

In general, the app avoids ANRs by doing most of its work in a service running background "threads". This prevents the main UI  "thread" from getting stuck.


eNotify Lite Crash Report:


eNotifyLite has has a total of 16 crashes. It processes far more email than the paid version. The paid version can do between couple thousand and ~10K per week at the moment. On the other hand, the lite version process tens of thousands of emails each week..

Of the crashes, 4 occurred in the MOPUB advertising library and 1 in the TAPJOY library. So 31% have occurred in third party advertising libraries...Luckily MOPUB is open source, so I was able to download their source code and fix it.

A further 3 crashes occurred as a result of corrupt build after I upgraded the Android development tools. This was totally my fault. I should have been more careful before deployment. So I've upgraded our procedures to always include a "smoke test" for any new version of the app no matter how trivial the changes.

The remaining 9 crashes (56%) are real human programming errors by me. These are the ones that were perhaps less avoidable if you allow for humans making mistakes! Grudgingly, I do make them :) But overall, the quality of eNoitfy Lite is very good thus far.


Staged rollouts:


This is a helpful new feature added to the Android market. You can release your app to 5% of users instead of the entire user base. This is a God send for controlling quality. Once your're happy with the release, you can increase the percentage. The only negative aspect is that development console statistics are only updated once per day. So it can take a full day before you get enough feedback to increase the percentage.

When making significant changes now, I only release to 5% of the users until I'm sure the new version is sound. This isn't a replacement for testing of course, but it saves my bacon in the event that anything gets through.

Conclusion:

I'm really happy with the quality of eNotify. Quality is our only option. If we release builds that crash and do not work our user base would come down on us like a ton of bricks. This is an app that's informing people of important messages. Many of the users are first responders and people whose jobs entail significant responsibility. It is our responsibility to deliver a good quality app that works reliably.

Update: August 7th

Now that we are done with the major feature sets the quality is excellent. Our growth rate, continues to increase month on month, but we've only had 2 crashes and 1 ANR over the past 4 weeks. I know! Our first and only ANR. I was really proud of the zero record. It was painful to lose it!! :)
  • One crash in mopub advertising library while displaying a flash ad
  • One crash in the app which has been fixed
  • This particular ANR is a Android platform defect that has an existing ticket raised against it
We continue to be careful with our roll-outs. It takes up to week now to get simple features to the users which is a shame. but quality control is essential. The bottleneck is the Google console. It only updates once per 24 hours so it take a lot longer than it otherwise would to do incremental roll-outs. It would be nice if it updated more frequently during staged roll-outs.

eNotfiy:
https://play.google.com/store/apps/details?id=com.hermes.enotifylite

eNotify Queries:
android_support @ verietassoftware.com

Glen Cook:
http://ewhizmobile.com/



Saturday, July 6, 2013

App Marketing in the Android Forums: Case Study: eNotify

App Marking: Android Forums

Case Study: ENotify

Is marking your app on the Android forums effective? There are numerous forums to which people turn to for technical help and keep abreast of announcements relating to their devices and apps. The majority of these forums have a dedicated thread for announcing new apps. However, you need to be aware of the rules for each individual forum:

Rules in General:
  • The announcement must conform to a certain format:
    • Example] "[APP][2.2+] ENotify"
  • Only make 1 post about the app. Any future announcements must be made in the same thread
  • Some have restrictions on how many screen shots and links that can be included
  • Many forums forbid marketing paid apps

ENotify:
  • First Month: The app averaged 2 downloads per day
  • Second Month: The app averaged 6 downloads per day
  • The 5 days following posting to the forums: The app averaged 14 downloads per day
Is that significant? Yes! It is to me :) My goal with the app is to build a small base of users so that I stimulate word of mouth growth while I continue to refine the app and its feature set.


Other benefits:
  • Posts are indexed by search engines so be sure to include key words that represent your apps features
  • Got some feedback on defects that were subsequently fixed as a result
  • A number of people discussed new potential features they'd like to see in the app

View Counts:  [July 2nd 2013 through July 6th 2013]
Total Views: 949

In conclusion, the most import forums for generating awareness are XDA, Droid Forums and Android Central.

More ideas for marketing your apps by Muhammad Ali

Check out my app for Android Wear:
WearMail

Best Regards,
Glen

Thursday, February 2, 2012

Android Market: What sells?

Today I'm taking a statistical look at the Android Market to find out what is selling.

I'm sure we all have some ideas for market applications, but what are people actually buying?

The market interface does not let you sort by arbitrary criteria such as the number of installs. To compile these statistics, I've used the following procedure:

I've analysed the first 125 applications under 'Top Paid Applications':
Apps -> Applications -> Top Paid

Again the criteria is somewhat obscure because the formula that Google uses for presenting top paid applications is not known. But it will undoubtedly be some combination total installs, install trend, user rating and other factors.

The Market does not give an exact number for installs. It instead gives ranges such as:

  • 500K to 1 million
  • 100K to 500K
  • 50K to 100K
  • ...

For purpose of this analysis, I'm only looking at applications that meet the following criteria:

  • They are listed in the first 125 entries under "Top Paid Applications"
  • Over 500K installs
  • 100K to 500K installs
  • Applications with less installs are ignored
  • Games are ignored
Finally it is important to note that the statistics completely ignore games. Games are far and away the top selling applications on the market. However, I'm more interested to see what non-gaming applications people are purchasing.

The over 500K Install club: 

Beautiful Widgets:
https://market.android.com/details?id=com.levelup.beautifulwidgets&feature=top-paid#?t=W251bGwsMSwxLDIwNiwiY29tLmxldmVsdXAuYmVhdXRpZnVsd2lkZ2V0cyJd

SwiftKey:
https://market.android.com/details?id=com.touchtype.swiftkey&feature=top-paid#?t=W251bGwsMSwyLDIwNiwiY29tLnRvdWNodHlwZS5zd2lmdGtleSJd

PowerAmp:
https://market.android.com/details?id=com.maxmpz.audioplayer.unlock&feature=top-paid#?t=W251bGwsMSwyLDIwNiwiY29tLm1heG1wei5hdWRpb3BsYXllci51bmxvY2siXQ..

Camera Zoom FX:
https://market.android.com/details?id=slide.cameraZoom&feature=top-paid#?t=W251bGwsMSwyLDIwNiwic2xpZGUuY2FtZXJhWm9vbSJd

Paper Camera:
https://market.android.com/details?id=com.dama.papercamera&feature=top-paid#?t=W251bGwsMSwyLDIwNiwiY29tLmRhbWEucGFwZXJjYW1lcmEiXQ..

SoundHoud:
https://market.android.com/details?id=com.melodis.midomiMusicIdentifier&feature=top-paid#?t=W251bGwsMSwyLDIwNiwiY29tLm1lbG9kaXMubWlkb21pTXVzaWNJZGVudGlmaWVyIl0.

ADWLauncher EX:
https://market.android.com/details?id=org.adwfreak.launcher&feature=top-paid#?t=W251bGwsMSwyLDIwNiwib3JnLmFkd2ZyZWFrLmxhdW5jaGVyIl0.

Shazam Encore:
https://market.android.com/details?id=com.shazam.encore.android&feature=apps_topselling_paid#?t=W251bGwsMSwxLG51bGwsImNvbS5zaGF6YW0uZW5jb3JlLmFuZHJvaWQiXQ..

Documents ToGo:
https://market.android.com/details?id=com.dataviz.docstogoapp&feature=apps_topselling_paid#?t=W251bGwsMSwxLG51bGwsImNvbS5kYXRhdml6LmRvY3N0b2dvYXBwIl0.

Talking Tom Cat:
https://market.android.com/details?id=com.outfit7.talkingtompro&feature=apps_topselling_paid#?t=W251bGwsMSwxLG51bGwsImNvbS5vdXRmaXQ3LnRhbGtpbmd0b21wcm8iXQ..


Some Trends:

Talking Heads:

Talking Tom Cat:
https://market.android.com/details?id=com.outfit7.talkingtompro&feature=apps_topselling_paid#?t=W251bGwsMSwxLG51bGwsImNvbS5vdXRmaXQ3LnRhbGtpbmd0b21wcm8iXQ..

Talking Ben the Dog:
https://market.android.com/details?id=com.outfit7.talkingbenpro&feature=apps_topselling_paid#?t=W251bGwsMSwxLG51bGwsImNvbS5vdXRmaXQ3LnRhbGtpbmdiZW5wcm8iXQ..

Talking Rex the Dinosaur:
https://market.android.com/details?id=com.outfit7.talkingrex&feature=more_from_developer#?t=W251bGwsMSwxLDEwMiwiY29tLm91dGZpdDcudGFsa2luZ3JleCJd

Typically, these are applications that repeat things via an animated character or have some limited capacity to converse with the user.



Augmented Reality:

These are application that apply effects and filters to your photos. For example,  a photo may be augmented to appear like a comic strip or things may be added to the photo such as fictional characters.

Camera Zoom FX:
https://market.android.com/details?id=slide.cameraZoom&feature=top-paid#?t=W251bGwsMSwyLDIwNiwic2xpZGUuY2FtZXJhWm9vbSJd



Live Wallpaper:

Wallpapers are selling quite well albeit they are generally only priced around the $1 mark.

https://market.android.com/details?id=fishnoodle.aquarium&feature=apps_topselling_paid#?t=W251bGwsMSwxLG51bGwsImZpc2hub29kbGUuYXF1YXJpdW0iXQ..



System Utilities:

Thankfully people are still interested in useful applications as well :) These are applications like:  ROM, battery and CPU management, File Explorers and Anti-Virus amongst others.

Root Explorer:

https://market.android.com/details?id=com.speedsoftware.rootexplorer&feature=apps_topselling_paid#?t=W251bGwsMSwxLG51bGwsImNvbS5zcGVlZHNvZnR3YXJlLnJvb3RleHBsb3JlciJd



Finally, these graphs only looking at what sells in volume. Obviously, the price point of an application is important. But I was merely curious about what is popular regardless of the purchase price.

Glen Cook
Consultant @ eWhiz Mobile

Tuesday, January 31, 2012

Android: Getting Started with PhoneGap

Android: Getting Started with PhoneGap

PhoneGap is a platform for creating native mobile phone applications using HTML 5.

HTML 5 is a powerful new specification that goes well beyond the capabilities of traditional HTML. APIs that are new in HTML 5.
  • Canvas: 2d drawing
  • Offline Web Applications
  • Document Editing
  • Drag and Drop
  • Cross Document Messaging
  • Browser History Management
  • Web Storage (Stores large amounts of data better than Cookies)
  • Geolocation
  • Indexed DB
  • ...
However, HTML 5 alone is not enough for delivering portable mobile phone applications. For instance, it does not contain many of the APIs needed to access the sensors on your phone: Compass, Barometer, Proximity and others. It does not provide access to the event data that you may need: battery level, connection status and other events. It certainly doesn't provide you with access to platform specific features such as Android notifications.

Enter PhoneGap, it is the middle layer that sits between the native platform and HTML 5. There is nothing magic about PhoneGap. You can certainly implement HTML 5 applications on Android without it. But it makes HTML 5 development more convenient for you:
  1. It sets up a managed WebView so there is no need to do this manually. When implementing a PhoneGap application you start thinking about HTML immediately rather than having to deal with setting up the native portion of the application -> Delclaring a WebView layout, Setting it as the content view, etc.
  2. It handles accessing native APIs for you. Without phoneGap, you would need to write code like: WebView.addJavaScriptInterface(new BarometerReader(), "barometer");
The second point is by far the most important. By providing Javascript APIs for accessing native data, PhoneGap can insure that your Javascript is the same on every platform. It eliminates the small percentage of Javascript code that would need to be rewritten for each platform. The PhoneGap APIs are located here:
http://docs.phonegap.com/en/1.4.0/phonegap_notification_notification.md.html#Notification

They include support for:
  • Accelerometer
  • Camera
  • Capture
  • Compass
  • Connection
  • Contacts
  • Device
  • Events
  • Geolocation
  • Media
  • Notification
  • Storage
Let's look at very simple example:

index.html:


<!DOCTYPE html>
<html>
<head>
    <title>Device Properties Example</title>


    <script type="text/javascript" charset="utf-8">


    // Wait for PhoneGap to load
    document.addEventListener("deviceready", onDeviceReady, false);


     // PhoneGap is ready
     function onDeviceReady() {
        var element = document.getElementById('deviceProperties');


        element.innerHTML = 'Device Name: '     + device.name     + '<br />' + 
                            'Device PhoneGap: ' + device.phonegap + '<br />' + 
                            'Device Platform: ' + device.platform + '<br />' + 
                            'Device UUID: '     + device.uuid     + '<br />' + 
                            'Device Version: '  + device.version  + '<br />';
    }
    </script>
</head>
<body>

    <h1>Let's print some device info</h1>

    <p id="deviceProperties">Loading device properties...</p>

    <h2>Done</h2>

</body>
</html>


HelloPhoneGapActivity.java:


import com.phonegap.*;
import android.os.Bundle;
public class HelloPhoneGapActivity extends DroidGap {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        super.loadUrl("file:///android_asset/www/index.html");
    }
}

The output on my HTC Desire looks as follows:


In a nutshell, instead of overriding Activity we now override 'DroidGap' which is provided by the PhoneGap jar library. In onCreate, instead of calling setContentView, we call super.LoadUrl with our index.html file. The full installation and start-up details are located here:

Don't worry, PhoneGap is very easy to set up. The one gotcha is to make sure the following line is correct:
<script type="text/javascript" charset="utf-8" src="phonegap.js"></script>

In the most recent distributions of the PhoneGap, the script name is slightly different than "phonegap.js". It may be something like: phonegap-1.3.0.js. Ensure this file name correctly refers to the javascript file in your project or onDeviceReady() will not be called.

Is PhoneGap ready for large scale projects? I have my concerns...The code above is the simplest of examples yet it has not managed to correctly print my device name. The device is a HTC desire not a 'htc_bravo' which can be verified on the 'Phone Identity' screen. I suspect it doesn't parse correctly due to the unorthodox string returned by the native API "htc_htc_desire". 


I've had feedback from other consultants that have abandoned PhoneGap due to portability issues. I've been told in generally works fine for iPhone and was getting better on Android, but didn't work as well on the smaller platforms like winPhone, BlackBerry, Symbian and others.


In conclusion, you should consider using a platform like PhoneGap to access phone specific features through a standardized API. There are other platforms that can be used to accomplish the same goal: Titanium, JQTouch and Sensha Touch for example. However due to the immaturity of these platforms, you should make sure they are capable of reliably delivering the APIs you need for the mobile platforms that you are targeting.


Glen Cook
eWhiz Mobile

Sources:
http://en.wikipedia.org/wiki/HTML5
http://phonegap.com/
Chris Woods
Martin Lewin

Tuesday, January 17, 2012

Android: Native or HTML 5 Applications


The biggest mistake made by companies in today's mobile environment is writing native applications when using HTML 5 would be more appropriate.

What is HTML 5? Broadly speaking, it includes the technologies for: HTML mark-up, Javascript and Cascading Style Sheets. It includes support for amongst other technologies: geo-location, audio & video, web storage, multi-touch, device orientation, speech recognition,  and the Javascript equivalent of threads: web workers. As you can see, HTML 5 goes well beyond the capabilities of earlier web technologies.

Using HTML 5 reduces the cost of development and expands the reach of the application. By doing an Android application in HTML 5, it only requires minor tweaks to bring it to iPhone, WinPhone and other platforms.

What is the case for doing native applications? Given that we can reach many more devices by using HTML 5, we should consider the justifications:
  • Broader access to the underlying hardware and sensors
    • Camera
    • Barometer
  • Tighter integration with system features: 
    • Notifications
    • Home Screen Widgets
  • Ability to integrate with other applications 
    • Launch the native Facebook application
    • Use the Android software bus (Intents) to pass it data
  • Faster, smoother and can be more attractive
  • More explicit management of resources
    • Battery
    • Memory
  • First access to new features not yet accessible through HTML 5
  • Achieving a native look and feel
  • Access to advanced UI components
    • Renderscript: 3D views utilizing hardware acceleration
      • The You Tube application's wall of videos
      • The playlist carousel used in the standard Honeycomb media player
    • Other views that have no HTML 5 equivalent: StackView for example 
An attractive alternative is to create a hybrid application. This is accomplished by embedding a web view inside a native application. Android provides excellent facilities for passing data between the native and HTML 5 portions of the application. For example, you can use WebView.loadUrl from the SDK to evaluate Javascript within a web page and return the results for parsing and further processing. In the opposite direction, Javascript can talk to native components using the WebView's  Javascript interface. For example:
WebView.addJavaScriptInterface(new BarometerReader(), "barometer");
Hybrid applications are more discoverable than pure web applications. Web applications can made available through the Chrome Web Store which is analogous to the Android Store. See the following screenshot of a Chrome browser with Angry Birds installed from the Chrome Web Store:


While this is great, it suffers from several issues:
  • Chrome has not yet been ported to Android
  • There is no section in the Android Market for web applications -> No equivalent of the Chrome Application Store
  • Creating a pure web application does not allow for a home screen launch icon on your mobile device
I imagine the Chrome Web Store will eventually be integrated into the Android Market in such a way that the user will not need to initially know if an application is native or pure HTML 5. But at the moment, it makes sense to create hybrid applications if for no other reason than they are more discoverable. By hybrid, we mean at a minimum embedding a web view inside of a native Dalvik application.

In conclusion, companies should be looking at writing Hybrid applications using HTML 5 to broaden their reach and to utilize the existing skills that exist within their organisations. This is especially true if the application in question is primarily a content application such as a newspaper or magazine. HTML 5 is the future and will increasing replace native applications written for specific platforms.

Glen Cook
Consultant at eWhizMobile


Sources:
Android: Native vs. HTML 5 Applications
Introduction to HTML 5
SDK Documentation: WebView