Wednesday, October 2, 2019

Detailed Android APP Work History


APPS created by Douglas Selph

From 2010 to 2019, listed with the most recent first



FUTURE PROOF (Jan 2019 - Sep 2019)

The Call Assistant APP provides enhancement call management. Provides more options to decline a call. For example you can have an "Assistant" say you are busy now, but will call back soon later. You can put someone on a music hold. You can also screen calls with your Assistant asking who is calling and what they want. A live transcript will appear as they speak.



                           




The back end magic was handled by Twilio. This tool negotiated with carriers to handle the canned audio played to the caller. Josh, a friend of mine from my TIP Solutions days (below) discovered this company along with an individual in Portugal that had implemented a solution using this Twilio. However, the code he had developed, though functional, was not properly organized. It required massive reorganization. Josh begged me to help architect it. I agreed to help until September when I would have to then look for other paying work.

The project was massive, I managed to port all the code into a proper architecture along with merging the massive amount of work I had done earlier with equivalent TIP Solutions Call Assistant look & feel. It was a full Phone App take over. I was quite happy with the architecture pattern I employed. I used an augmented MVC architecture, initially patterned after the structures as taught by Vasiliy Zukanov from Udemy.

Augmented MVC Architecture Style

VOKAL (May 2018 - Oct 2018)

The Lou Malnati's Pizza App allows you to order delicious Lou Malnati's Pizza. They hired Vokal to completely rewrite their Android & Apple APP. It was a lot of fun. I did it using the MVP Android Architecture model.






Hats Off Apps
 (Apr 2018 - May  2018)

Celebrity Voice Changer is an app that is very popular on Apple's iStore. Hats Off Apps hired me to build an Android version of this app. Though there was one already on the store, it wasn't very good. I worked on it for several months and got almost most of it going before they cancelled the idea for business reasons. I found the back end very difficult to work with in any case. 

The interesting thing about the code was that I used rather advanced RxJava to do the very involved audio tasks needed.

Select a Celebrity and then say anything

Using RxJava's lift call

Used RxJava to handle the complex audio streaming requirement by the app

FleetTLC (2017, 2018 - present)

FleetTLC is a company managing a score of technicians that perform repair and maintenance work for a fleet of trucks around the US. Fleet TLC wanted a way to track their work, so they had me build an Android APP and server for this task. The APP ran on tablets where they could record the work they were doing and have that data automatically uploaded to a server where he could monitor the results.




The data that needed to be sent had to include pictures. Each entry, which represented a specific task the technicians did to a truck, had to be additionally documented with a picture.

I built the server using the Play Framework.

Front Door of all the data that can be accessed and viewed 


List of entries uploaded by technicians.
A detailed look at one entry

The pictures were transferred to a bucket using AWS Amazon S3. The web pages were hosted by Amazon AWS as well.


In Nov 2018 they asked me back to do a major upgrade where they could, from the server side, customize the flow the app took the technicians.


Uniwar (2017)

At one point I asked if the team behind Uniwar (a game I used to really enjoy playing) needed any programming assistance. I was surprised when Xavier, the programming champion behind Uniwar, said yes! He was very grateful for my assistance in fixing bugs and adding improvements.



 Vokal & the Weber APP (2017)

Vokal, a software development house hired me to help improve the Weber iGrill APP. The APP had gotten very bad reviews and they hired Vokal to get it shape. I very much appreciated working with highly skilled and knowledgeable Android developers. Learned a lot and contributed as well.


We successfully got the gross bugs out the APP and spiffed up some features. One fun part for me was getting exposed to RxJava, specifically RxAndroidBle, and Dagger II. 

Smart Calls
 (2010-2017)

Smart Calls was modification to the actual Phone APP on the phone to provide many new phone call answering featuring. I actually had to go to the factories in Shenzhen China to install this complicated idea. A handful of phones were actually produced before we closed shop due to lack of funding.

The core features included, but were not limited to, Decline+, Hold-On, and the Screener options. 

  • Decline+ presents the user with a dialog allowing them to indicate why they are declining the call. The phone would respond by telling the caller, using voice injection, that you were busy for the indicated reason, but will be reminded to call back later.
  • Hold-On tells the user (using voice injection) to wait a moment, and then plays some hold music.
  • The Screen Option asks the caller, using a voice assistant, what the call is about. The callee could then pre-screen the caller before actually answering.
Incoming Call Screen
Decline+Dialog
Connected Call Screen

CallSnap (2012-2014)

CallSnap was an ambitious downloadable APP adding an overlaid option on top of the existing incoming call screen of declining the call with a photo. This took took the callee to the camera where a picture could be taken. Then it would process the picture and send it to the caller via MMS. There were many programming challenges to this one. The fatal challenge was when Google made changes forcing the user to select which SMS App to use to send the photo. This added an extra step to the otherwise seamless and simple two step process. We developed many features to this one. Some including a fixed gallery image response, or a voice response. The voice response was recording a quick audio that is sent via SMS to the caller.

Incoming Call Screen 
w/ Calsnap and Voicesnap
Camera Screen, 
where the picture is taken. 
User is taken here after selecting 
the CallSnap option from 
the incoming call screen
Gallery Image Choices 
available from Camera Screen
Voice Response Screen
Sample of what the callee might receive as a SMS message

CallCheck (2013-16)

Apparently there is no guarantee with some carriers that you will receive a voice-mail of missed calls if you go out of network. To solve this problem we developed CallCheck which not only gave you your missed calls, but told the caller that you would get right back to them soon.

Log of Missed Calls
Custom message per caller
Custom header and APP drawer
Notification
VIC (2010-2011)

My very first Android APP was VIC, which stood for Very Important Caller.  This still was was one of my favorites. It was in the Play Store for a very short time sadly.

VIC 1.0 allowed the user to silence the phone for everything except Very Important Callers for a specific period of time by a simple dialog.


Simple On/Off Button
Duration Dialog
Select who is a Very Important Caller

In VIC 2.0 we enhanced many features. It was fun making a specialized widget to display a dial the user could drag to set the duration, introduce groups of contacts, and allow the user to separately control incoming calls, text and email notificationsIt required diving deep to make VIC thoroughly email aware. It required fairly complex internals (non UI) for the user to be notified of incoming emails only from specific senders they selected.
Distinguish between Calls, 
Text, and Email per contact
Use fancy dial to select duration

VIC 3.0 took the duration screen a step further, but the product was eventually discontinued in lieu of focusing on Smart Calls, in an effort to build revenue.

Set a start and stop time