Tuesday, December 28, 2010

Shopping Assistant User Guide

  Since we've just finished the first version of our shopping list management application for Android and we are still in the process of getting a proper site, I am going to add the user guide for Shopping Agent as a post in my blog for the time being.
  Before I dive into the specifics of the application, I would like to add the following disclaimer for those of you who want to download and use the application from the Android Market.

  This software is freeware and is provided 'as-is', WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. In no event will the authors be held liable for any damages arising from the use of this software.

 In the hopes that you will find this application useful, here is a short user guide. For any inquiries or suggestions you can email us at hypersynapse.support@gmail.com. We're also available on twitter - follow @sh0passistant to get tips on how to use the application and provide us feedback on the application.

  The application has 3 tabs with the in which the users can manage their shopping lists, do the actual shopping or see reports of their previous shopping sessions.

1. The shopping list management tab (Shop Lists)

You can create a new shopping list by entering it's name in the List Name text field and pressing the Create button, or you can use the Import button to load a previously exported list from your device's SD card.

 In order to add items in your newly created shopping list, you can use the View/Add items context menu on your list, which will bring you to a new screen where item details can be entered.

Tip: categories can be isles from your preferred supermarket, that way it will be easier to filter when shopping in the store.

The import and export functionality can be used for passing lists around to other users. For example, one user can create a shopping list that she wants to send to somebody else, and use the Export context menu on the list to save it to the device's SD card and then mail it to another user who can use the Import functionality to load it in her application

2. The Shop View tab

On the Shop View tab you can use the List and Category drop downs, to select the list from which you want to buy the items and the category/isle on which you want to go. Once the items are filtered, you will see them in the list with check boxes next to them. If you tap on the check box next to an item, you will be taken to the next dialog which will allow you to enter some info about the item such as a price and an expiration date and you can edit the quantity of an item if needed.

 The application will compute your total cost for a shopping list so at the end of the shopping session you will be able to know how much you need to pay.
 If you are buying an item that expires, you can enter the expiration date and on that day, you will get a notification in the notification bar of your device, that your item expires. If the item is non expiring, don't forget to check the Non Expiring Item check box.

Warning: If the device gets booted after you set an expiration notification, the notification won't show on the expiration day - this is currently the default behavior of Android alarms which get reset when the device is booted, and we're working on a workaround for this small inconvenience.

Tip: There currently are no units for quantity and for items such as fruit or vegetables, which are sold based on weight, you can just add 1 as the quantity, and when you weigh them, you can add your total as the item price.

3. The Reports tab

 On this tab you can see various statistics about your shopping sessions. You can choose one of the reports available in the Report drop down and you will see a corresponding statistic. This is helpful if you like to keep track of your expenses and see what were your most bought items.
 In order to be able to see any reports of your previously bought items, you should first close all the shopping lists you have already bought from the Shop Lists tab, by using the list context menu -> Close.

4. The Application Settings
 When pressing the device menu key, you will be presented with the application's settings menu. If you tap on the menu, you will access the settings of the application.

 There currently are 2 settings that can be changed: the Notification Start Time, which will be the time at which you want your expiration notifications to go off in the day the items expire and the Limit Top Reports which is the number of items to be shown in your Top Frequency and Top Expensive reports.

Wednesday, July 14, 2010

Presenting Aegis Shield

  If you're a regular reader of this blog, you may remember me mentioning my password manager application for Android, Aegis Shield. The thing is, that in March, I have finished version 1.0 of the application, and I wanted to publish it in the Android Market, but since there are some rules regarding applications that use encryption to which you must agree when publishing to Google's Android apps store and I was unsure if Aegis Shield respects them, I decided not to publish it for the time being. By the way, if you know the US export laws regarding software that uses encryption, I would really appreciate some insights on that. I am especially interested to see if Aegis Shield can be exported as software without any special permissions from the US Government.
   This being said, I would like to add a description of what Aegis Shield does together with some screen shots and with a QR encoded URL from where you can download it and try it on your phone.
   As I mentioned, Aegis Shield is a password manager which basically allows you to keep the user/password combination for your various Internet and computer accounts, all in one place and encrypted under a master password.
   Main features of the applications are:
  • Having a master password that is not saved on the device. The way this works is by saving an encrypted version of a check text when first entering the master password, and then each time when you log in the text gets decrypted and it is compared with the clear text. If they are the same, you are allowed to log in the application. For now, there is no way to change or reset the master password, so please make sure you remember it well, because otherwise you won't be able to use the application.
  • It allows you to enter information about your accounts and offers the possibility of automatically generating the password.
  • You will see an overview of all your accounts which will allow you to view/edit the account information by means of a long press on the account list item.
  • Your chosen password strength will be measured and shown.
  • Accounts can be edited or deleted.
   Before some screen shots and help information on how to use the application, here is the download URL encoded as a QR code:

   The main/master password entering screen.
   This screen appears only the first time you run the application, and it asks you to enter the master password twice. After that, you will only see a single password entering field each time you use the application.

   The add account information screen.
   Here you will enter your account information such as the account name, an optional description and the user/password combination. You also have the possibility to automatically generate a strong password, using the "Generate Password" button. Once you finish adding the account info, you can click on the "Create Account" button and the info will be stored locally on your device, with the password for the account encrypted, using the master password as a private key. After pressing the "Create Account" button, the fields will be cleared, so you can enter another account. If you finish adding accounts you can go to the account overview screen by pressing the "Account Overview" button.

   The account overview screen.
   In the account overview screen, you can see the whole list of your accounts and when long pressing on an account in the list, you will be presented with the Add/Edit/Delete menu you can see above, that will allow you to do the respective operations. If you want to view or edit the info of an account, just press the Edit button, which will take you to the next screen.

   The edit/view account info screen.
   Here you can view or edit the information for an account. Password is initially hidden, but you can tap and hold the field to reveal it.

   Finally I would like to add some information about the licensing of the application which is GPLv3 and a disclaimer.
   If you decide to download and use the application, you automatically agree to the GPLv3 license terms, of which a short description is provided below:
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses
  Feel free to download and use it, but remember that this is free software and it comes with no warranty. However I do believe that there is room for improvements, so feedback is appreciated. You can either email me at hypersynapse.support[at]gmail.com or add some comments to this blog post.

Tuesday, June 01, 2010

Scrisoare deschisa catre organizatorii HTC Romanian Android Challenge si participantilor.


   Ma numesc Mihai Campean, si sunt co-autor la aplicatia myShoppingList,  aplicatie care a fost inscrisa in competitia HTC Romanian Android Challenge inainte de termenul final initial de 31 Mai 2010.
   Dupa cum se stie, datorita faptului ca au fost destul de putine aplicatii inscrise pana la acest termen, organizatorii au decis sa prelungeasca termenul de inscriere cu inca o luna, pana pe data de 30 Iunie 2010, pentru a putea permite si altor participanti sa dezvolte si sa inscrie aplicatii in concurs.
   Cu toate ca inteleg rationamentul organizatorilor si respect dorinta lor de a atrage mai multe aplicatii in competitie, fapt care sa incurajeze si dezvoltatorii de aplicatii pentru Android locali, mie personal mi se pare putin incorecta decizia fata de cei care au depus un efort sa isi inscrie aplicatiile inainte de termenul initial, probabil unii dintre ei afland despre competitie cu intarziere, si care probabil ar dori o sansa sa faca niste imbunatatiri calitative la aplicatiile lor, in loc sa se gandeasca la idei noi fiind motivati de faptul ca pot sa inscrie mai multe aplicatii in concurs pentru ca pe cea deja inscrisa nu o pot modifica.
  Intr-adevar pentru cei care acum incep, nu ar fi corect ca noua, celor deja inscrisi sa ni se permita mai mult timp de lucru, dar in situatia data, cred ca s-a ales corectitudinea pentru cei noi inscrisi in detrimentul, zic eu, celor care au inscris deja aplicatii, cu toate ca au posibilitatea de a inscrie si altele. Datorita faptului ca toti care au inscris aplicatiile inainte de primul termen, au investit efort de timp si probabil si emotional in dezvoltarea aplicatiilor, sunt de parere ca ar fi mai corect daca s-ar proceda in felul urmator:
  Sa se permita si celor inscrisi inainte de primul terment o perioada de 2 saptamani pentru un update iar, ca sa fie corect si pentru nou veniti si daca tot se prelungeste perioada inscrierilor, sa se prelungeasca noua cu inca 2 saptamani dupa 30 Iunie. In cele 2 saptamani de prelungire, celor ce se inscriu pana la 30 Iunie, sa li se permita timp pentru un update. Cred ca se poate face destul de usor acest lucru, daca se foloseste Android Market-ul pentru a lua aplicatiile de catre juriu, verificand data la care s-a facut prima inscriere (impreuna cu descrierile si celelalte cerinte de pe site-ul competitiei) si apoi data update-ului.
  V-as ruga pe cei care ati inscris aplicatii inainte de primul termen, si cititi acest blog, sa va spuneti parerile in comentarii, si sa mentionati daca sunteti de acord, apoi sa trimitem linkul organizatorilor. Va rog sa pastrati fair play-ul in comentarii si sa nu faceti remarci belicoase, agresive sau deplasate la adresa organizatorilor sau a celorlalti participanti/comentatori. Ce doresc prin aceasta scrisoare deschisa este sa ne facem auzita vocea, iar daca lucrurile se vor schimba sau nu, asta ramane de vazut, dar cred ca ar fi bine sa ne spunem parerea.

Cu respect,
Mihai Campean

UPDATE: 10 Iunie 2010
   Dupa cum deja este cunoscut, organizatiorii Romanian Android Challenge au decis pana la urma sa dea un ragaz de o saptamana celor care au inscris aplicatiile in primul val pentru a face un update in cazul in care doresc acest lucru.
   Desi parerile concurentilor pe aceasta tema sunt impartite, unii considerand ca nu e corect fata de restul lumii sa se faca acest update, noi am considerat ca este mai bine sa profitam de aceasta saptamana pentru a imbunatati o aplicatie deja existenta si a face un update, decat sa incercam sa lucram la altceva si sa ramanem cu doua aplicatii mai slabe calitativ doar de dragul de a avea mai multe sanse in concurs.
   Cu aceasta ocazie am si redenumit aplicatia myShoppingList in Smart Shopper, deoarece in Android Market mai exista o aplicatie numita My Shopping List, si nu am vrut sa creem conflicte sau confuzii, motiv pentru care am decis sa  ne numim aplicatia altfel.
   Odata ce termenul de 30 Iunie (speram ca nu se mai modifica) se implineste, si se da voie ca aplicatiile sa fie votate de utilizatori, daca doriti sa ne ajutati in drumul spre a castiga un HTC Desire, va asteptam sa va uitati sau sa va instalati aplicatia, si daca considerati ca merita un vot, sa o votati pe site-ul Romanian Android Challenge.

Monday, May 31, 2010

A glimpse in myShoppingList

  UPDATE (June 1st 2010): The deadline for the Romanian Android Challenge has been extended until the end of June, so if you want to vote the applications in the competition, I think it is best to hold until the entering of applications period is over.

  Hello my loyal readers, this one is going to be a short glimpse in one of my Android applications - not the Aegis Shield password manager, another one :).
  The idea for this application started last year before the second Google Android Developers Challenge, and we wanted to add so many things to it but gradually we gave some of them up and we arrived to the usable version we have today. Even so, we did not make the Android Developers Challenge so we left the app be for a while, did not work too much on it. Keep in mind that this also was a side project so development on it is on "when I have time basis" - after all a guy's gotta make a living somehow :) .
  The fortunate circumstance that made us push the application forward to a usable version  was the Romanian Android Challenge, organized by HTC Romania, which even if it doesn't have the financial rewards of the Google Android Developers Challenge, still motivated me and my friend Bogdan, with whom I worked on this application for most of the time, to finish it and enter it in the competition.
  We know that the application isn't perfect - we do have a list of known bugs and of user experience improvements we want to implement but it is a step forward in the right direction, and what I want to do here is allow all of you who read my blog a glimpse on the application. Currently it is available in the Android Market but only for Romania, so if you are in Romania and want to check it out and give us some feedback, search for it using this url (remember to use your Android enabled phone). What we intend to do, after the competition is over (in about 10 days), which gives us some more time to fix some remaining things, is to have a release for all the locations in the Android Market and with the English version.
When that is done, I'll add a new post with some instructions on how to use it. Meanwhile, you can checkout some screen shots and if you are in Romania, you can check out the application's challenge page on the competition site and if you like the application, starting tomorrow you can vote for it.

  P.S. I believe we are going to rename the application to something other than myShopping list, since it seems that there already is an application with the name My Shopping List available in the Andorid Market and we do want to avoid any confusion that this may cause, but for now, the name is myShoppingList and the application is only limited to users in Romania.

Friday, March 26, 2010

Backlog for the Last Months

  Even though there hasn't been much activity on my blog for the past few months, I am always up to something in the background, joggling with my spare time between family, friends and my hobbies (which include coding), so in this post I am going give you a quick glimpse at what I've been up too coding and technology wise :).
  November and December last year were the months of presentations. I held a pesentation of Google Android Basics, freely available on prezi.com (just follow the link), to a student organization in Cluj in November and to the local JUG (Transylvania Java User Group) in December. The presenation was somewhat sucessful based on the large number of participants and not on my public speaking skills :) (I hope it was useful for the people who participated), and it contained a short introduction into the Android platfrom from a developer's perspective, with a demo based on my Aegis Shield project, hosted on Google code.
  Meanwhile I continued working on Aegis Shield and on myShopping list of which Aegis Shield 1.0 was completed yesterday, and it will be published as a free appliation in the Android Market in the coming days. Until then, if you would like to try it you can download the apk from the Google code hosting site of the project, listed above. Please do let me know if you find it useful, if it has bugs, or if you would like to add some improvements. Development time for me is fairly limited, so you are more than wellcome to participate with code if you're interested.
  I've also been keeping in touch with Adrian Cole - owner of jclouds cloud service accessing framework - since he is interested in porting jclouds to Android. For that I've started the jclouds-android Google code project which is supposed to be a simple twitter client on Android that uses jclouds to get the twitter feed of a user. However, progress on this field has been slow lately mostly due to my lack of time, but we got to a place where we concluded that we need to compile the jclouds project and it's dependencies with the Android compiler for the Dalvik virtual machine, because there are some warnings when dex-ing the jars that result in runtime errors due to usage of inner classes in the code. I'll be posting on the progress of this project also, once I get some more time to work on it.
  This is it for the moment, I will come back with a detailed post about the features of Aegis Shield, once I'll manage to publish it in the Android Market.
  Until then a nice weekend!

UPDATE:  I've attempted to publish Aegis Shield in the Android Market but got thrown back by the agreements that you must make when publishing in which you guarantee that the use of cryptography API's are conforming with the US Government's export laws. Since I am no lawyer and I couldn't find any obvious information on what the violations may be, I decided not to publish in the Android Market anymore - at least until I find out for sure that the application conforms with the above mentioned requirements.

Playing for Change