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!!

Thursday, September 19, 2013

Email to SMS
Released to Google Play

Description
Converts emails to SMS text messages in real time

Scenario:
. A friend sends an email to your Gmail account
. The email is instantly received by the app background service [using push mail technology]
. The email is moved to your SMS text message app
. You can reply to the "email" using a text message

Important:
. To reply, ensure the sender's email and cell number are in the device contact app

Features:
. Preview: specify how many characters from the email to move to the SMS app
. Options to only convert to SMS text message if sender or recipient is in the contact app
. Options to only convert to SMS text message for specific senders or recipients
. Option to show a notification whenever an email is converted

Mail Support:
IMAP, IMAP IDLE, POP and POP3

Good to know :
. Completely private! Your data/email NEVER leaves your device!
. If interested in mail notifications [but not SMS conversion] please try our sister app: "eNotify Lite"





Try it out on Googleplay:

Motivation

Firstly, I just wondered if this was even possible to do :) As it turned out, yes I was able to create SMS entries in real time as push emails arrived.

Secondly, it is just a bit of fun for me. I'm not sure that anyone needs this capability. I'm half expecting to get ridiculed for writing an app to solve a problem that does not exist, but we'll see what happens. :) BUT I may get some good ideas for new messaging apps or become aware of different usage patterns.

The effort involved was reasonably minimal as I've built up a lot of email code working on other projects.

Cheers,
Glen

Saturday, September 7, 2013

eNotify & Battery

I've had some queries recently about the battery usage in eNotify Lite. This article answers the following 2 questions:

1. Does eNotify cause battery drain?. The answer is NO, but will take some explanation :) Regularly checking for emails on a server is an inherently expensive task. However, eNotify tries to do this in smart way to reduce battery and data consumption.

2. What can I do to make eNotify use less Battery? Answers below.

Polling vs Push Email:


Polling means to check the server for mail at a specified interval. In eNotify, you have a "Check Interval" with values from "Every Minute" up to "Every Hour". Obviously, polling every minute is more expensive than polling every hour. However, it isn't due to the network traffic or the processing power required to scan the emails. The main problem is that it requires the device to wake up frequently. Mobile devices conserve energy by periodically going into deep sleeps. However, if you disturb the device every minute then it will use more battery.

Push Email in eNotify can be accomplished by using IMAP-idle. IMAP-IDLE as described by About.com:
IMAP IDLE is an optional expansion of the IMAP email accessing protocol that allows the server to send new message updates to the client in real time.
Instead of having your email program check for new mail every few minutes, IMAP IDLE allows the server to notify your email program when new messages have arrived. You can see incoming mail immediately.
IDLE is implemented by maintaining a permanent connection to the mail server. Is this expensive in eNotify? No, by default we do not hold the device awake while idling. However, you can force the device to stay awake by selecting accounts -> [your account] -> Advanced -> Wake Lock -> On
What is a Wake Lock? eNotify periodically uses "partial" Wake Locks to keep the device awake during email scanning. A partial wake-lock lets the screen sleep, but keeps the CPU active. In human terms, it stops the device sleeping on the job! :)

FACTS:


The following data comes from one of our users Eric Moore. He initially contacted me about a separate issue, but our correspondence ended up leading to a detailed investigate of the battery characteristics of eNoitfy. I've quoted Eric here with his permission:

Eric writes:

I am not having any problem with battery drain. I use BetterBatteryStats to measure battery drain.
Before installing eNotify, my battery drain night was typically between 1.1% and 1.5 % per hour (then my email app, the stock Samsung email app was polling once an hour at night). I’ve also used [app name removed] (which is imap push) and also got battery drain in the same range.
Last night, with enNotify running, my drain was 1.1% per hour. It has been around there every night since have I’ve had it installed (about a week now). My battery drain, with use, during the day seems to be what is was before. I am pretty happy with that... 
According to BetterBatteryStats, over the last 4 and a half hours, eNotify has taken 742 partial wake locks for a total of 21 seconds. It is not even in the 10 of all my processes for time in partial wakelocks.
Fyi, Before trying eNotify, I tried an app called [name removed]. With that app my battery drain at night was about 3.5% per hour.
So I’m getting my email notifications instantly, with no perceptible impact on the battery!
  
2 Accounts: IMAP IDLE and 1 minute interval:

Yes. One imap-idle account and one gmail account.

 My device is going into deep sleep 60% to 90%  of the time according to both BetterBatteryStats and CPU Spy.

Compared against email App:

when I used [named removed] mail (with IMAP push), I got deep sleep percentages of 60% - 90%, 

also, same as with eNotify.

2 Accounts: Both using 1 minute interval:

As you requested. Here is a output from BetterBatteryStats, with one minute polling, after 1 hour and 6 minutes.  I had both my imap account and gmail accounts set for one minute polling.  (Maybe the AlarmManager entry corresponds to one poll per minute for 66 minutes (?).)


The battery drained about 2% over an hour. 
big THANK YOU to Eric for running these tests.
In conclusion, eNotify handles the battery especially well for an app with a challenging mission.

eNotify Lite: What's the difference?


There must be some problems, right? YES. I cannot hide form what I've done! :) It came to my attention recently that eNotify-Lite does have an issue with battery drain. The two versions (Lite and Full) are nearly identical however eNotify-Lite serves ads with the mopub advertising library. Why is this an issue? Well these wee little beasties apart from being annoying are also implemented using javascript or in some cases flash. To render these ads require additional browser threads and screen updates. This is compounded by the fact that some Android devices are not very clever about shutting down browser threads.

For users that keep their screens on frequently, the 'movement'  in the ads [Browser threads] can cause battery drain...In 1.97, I added  code to remove any dynamic ads after a period of time this greatly reduces the battery usage.. I've also replaced mopub with Google admob. The presentation and resource utilization is much better in AdMob which isn't surprising given their tight integration with Google.

eNotify Lite Tests, Conditions:
  • HTC ONE V (Ice cream sandwich)
  • One gmail account idling
  • Screen set to ALWAYS ON
  • Pop-up dialog permanently open
  • 2 Hours
eNotify not installed: 2 Hours: 23% drain
eNotify Full Version (pre 1.97): 24% drain
eNotify-Lite (pre 1.97): 31% drain
eNotify 1.97: 24% drain

I'm not sure the small percentages mean anything...It could just be rounding errors in my trial.

WHAT SETTINGS CAN HELP?


As Eric's data hows, eNotify uses the battery well in spite of being given a challenging task ->  Contacting the mail server frequently to check for new messages.

But the following options can help you squeeze more battery out:

WIFI Sleep Policy:

Keeping the WIFI radio on [sleep policy: Never] is not an issue in isolation. The problem arises when you're walking around with your device. The OS will constantly be scanning for new WIFI hot spots trying to make a connection. This will wear down the battery eventually. So you're better off selecting a less aggressive policy such as "After 15 minutes".

Check Interval:

If eNotfiy checks the server frequently it will use more battery (and data). Checking every "30 minutes" or "Every Hour" will use negligible battery [Meaning you won't even be able to measure what eNotify is using compared to other apps].. But as Eric's tests showed above, he scanned 2 accounts every minute for 1 hour and it only used about 2% of the battery.

Screen:

The biggest impact on battery life is your screen sleep time. eNotify never sets anything to keep your screen alive. It is solely determine by your device settings. 

Keep in mind that eNotify Lite [and other free apps] do serve ads. Those ads will cause screen refreshes which consumes some battery. However, as mentioned above eNotify-Lite now aggressively removes ads and uses in addition to using an efficient network It would expect battery usage form ads to be lower in eNotify Lite as compared to other apps.

Wake Locks:

Wake Locks keep the device  CPU alive long enough to scan the mail accounts. You can turn wake-locks off in the Advanced menu on the account edit screen. However, if you do this there is no guarantee that eNotify will wake up and notify you of messages. So you'll be sacrificing reliability to gain some battery savings.


THE FUTURE?


I may add a few more settings to let power users control the battery usage:
  1. Ability to switch polling intervals when battery is low [1 minute to 30 minutes for example]
  2. Ability to turn polling off when battery is low
  3. Advanced menu control over some of the settings like the retrying failed connections
  4. Advanced control over a component called the AlarmManager that wakes up the application when it is time to scan the accounts

None of these are particular difficult to do, but it isn't clear that they are necessary. Introducing a battery plan suggests that eNotify is battery intensive and may cause panic, but the only test results I've seen seem to suggest it isn't an issue.

I do like the idea of features 1 and 2, but I need to do additional testing to see if they will make any meaningful difference.

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

eNotify Queries:
android_support @ verietassoftware.com

Glen Cook:
http://ewhizmobile.com/

Tuesday, August 6, 2013

eNotify Supports Pebble

eNotify:

eNotify is the swiss army knife of messaging notifications. 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! Available on both Android and iOS


Pebble:

Pebble is the first watch built for the 21st century. It's infinitely customizable, with beautiful downloadable watchfaces and useful internet-connected apps. Pebble connects to iPhone and Android smartphones using Bluetooth, alerting you with a silent vibration to incoming calls, emails and messages. While designing Pebble, we strove to create a minimalist yet fashionable product that seamlessly blends into everyday life.

How does it work?

The notifications are sent from your Android device to the pebble wrist watch using the bluetooth protocol. eNotify contacts the pebble software running on your Android device to inform it that a notification needs to be sent. This is done via the standard Android intent mechanism as follows:

public static void showPebble(Context context, String sender, String subject) {
try {
final Intent i = new Intent("com.getpebble.action.SEND_NOTIFICATION");

final Map<String, String> data = new HashMap<String, String>();
data.put("title", sender);
data.put("body", subject);

final JSONObject jsonData = new JSONObject(data);
final String notificationData = new JSONArray().put(jsonData).toString();

i.putExtra("messageType", "PEBBLE_ALERT");
i.putExtra("sender", "eNotify");
i.putExtra("notificationData", notificationData);

context.sendBroadcast(i);
} catch (Exception e) {
EventLog.e(TAG, "Error Cannot send pebble alert: " + e.getMessage());
}
}

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 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