This application allows you to locate and report illegal dumps in your neighborhood, your city or anywhere else in the world. This project helps ordinary people to have impact on their environment and to be easily involved. TrashOut data will support local institutions, organisations and governments to improve situation in the world.

Features:

  • Report illegal dumps
  • Get beautiful badges as a reward for your activities
  • See illegal dumps on TrashMap
  • All reports are synced within your account
  • Report illegal dumps anonymously
  • Login via email or facebook
  • High resolution graphic for iPhone 4, 4S ‘Retina Display’

Interview with Jozef Vodicka

What is your TrashOut app about & what gave you inspiration to create it?
TrashOut is an environment project aiming to locate illegal dumps all around the world. We hope, we will build an easy to use platform to fight illegal dumps all around the world. It is simply Game Over for illegal dumps.

I got this idea during my exchange period in Finland and Singapore. These countries are taking care about environment and are very clean. So from 2009 I started to take notes with ideas for this project. Timeline of our project can be found here www.trashout.me/about

How long did it take to design, build, test & deploy the app?
It took us 1 month to make beautiful and useful design. We were 3 designers.
Then development took 4 months, simultaneously we designed and developed web app in the cloud and API to communicate with mobile app. One developer for Titanium Appcelerator iPhone app and one for web app.
Testing last around one month and we also translate it to Slovak, because we wanted to do “prove of concept” in Slovakia.
The result is here www.trashout.me/statistics/slovakia

Is the Android version written in Titanium, if so what differences in the code did you notice when building?
Yes and no. We started to test Titanium Appcelerator App just on iPhone, because simulator is much more responsive than Android VM. To change the code for Android version my colleges need to make several changes and than they made a list what needs to be change. App has around 10 000 lines of javascript code and they changed around 500 lines. But it was in SDK 1.8.x (We started with SDK 1.6 I think).

In SDK 2.x I found out that old code for iPhone is behaving the same way as on Android, so maybe in the future there will be less than 500 lines needed to change.
TIP: use www.android-x86.org for testing on local machine. It is super quick.

And why no. We are global project. Most of Android phones don’t have a lot of storage. And in some areas is really slow internet. So we had to decrease the size of app. With Titanium Appcelerator it had around 9MB, in native code it has 3.2 MB. But we are keeping the Titanium Appcelerator code up to date for both platforms.

Do you have any plans of bringing out a iPad version?
Yes. We will bring also app for iPad. It will include TrashMap and some statistics data too.

What are you plans for the future with this app?
Currently now, we are locating illegal dumps. In future version people will be able to confirm existence of reported illegal dumps. And also update it with new photo of current situation. Because somebody could clean it so far, or people will organize cleaning event.

And localizing is very essential. We are preparing Spanish, German, Russian, French, Japanese versions of our app.

Are you guys available for freelance work?
No at the moment. We have so many ideas to work on. So we rather looking for hiring somebody :) .
So if somebody wants to be in a team of young, creative and passionate people working on global startups, don’t hesitate and contact us.

Do you have any code that would be helpful for other Titanium developers?
Yes, we know that ‘sharing is caring:)
We will make also some blog posts about our window management, performance improvements and how we put to life our beautiful progress bar.

Please see below for examples:

Code samples

GPS:

I found this very handy if app is resuming from background (this solves an issue with not getting any more location if you user is not moving)

Ti.Geolocation.restart();

Listeners:

This will tell you how many times in your code you are waiting for location change (this can be used also for click listener.)

if( !Titanium.Geolocation.listeners || Titanium.Geolocation.listeners.location == 0 ){
    // find out if you attach already some listener
}

BASE64 String

As disqused here on JIRA, the function base64encode doesn’t return a string but TiBlob object. To get Base64 String use

.getText()

Youtube videos

If you want to open Youtube videos, do it from non-modal windows.

Platform info about phone

Titanium.Platform.getArchitecture() + ' '+ // ARM
Titanium.Platform.getId() +  ' '+ // long unique string 03a5538df3d459d4f70cvaad356a3...
Titanium.Platform.getModel() + ' '+ // iPhone 3GS
Titanium.Platform.getOsname() + ' '+ // iphone
Titanium.Platform.getOstype() + ' '+ // 32bit
Titanium.Platform.getVersion() + ' '+ // 4.3.3
Titanium.Platform.getName() // iPhone OS

TableView is moving

If you put there touchEnabled:false, it will work, but you can not attach any action to it.

Event Listener is not working

If element we want to attach listener to, is nested into view without width and height set it will not fire any event always use for all views width and height at least to ‘auto’.

Gallery

Links

Twitter
Homepage