IFD:IOSDevII 2011/Projects/Relieve Climate: Difference between revisions

From Medien Wiki
mNo edit summary
 
(One intermediate revision by one other user not shown)
Line 83: Line 83:
</gallery>
</gallery>


==Programing Technique==
==Programming Technique==


''NOTICE:'' For your convenient, I packed project folder into Zxing-1.6 folder path. Hence, you have to only
download from the link then uncompressed the file to your hard drive. Then, find Relieve Climate folder under Zxing-1.6/iphone/
I have created this application using Xcode 3.2 debugging on iOS 4.2  iPad II. According to [http://dl.dropbox.com/u/30247554/zxing-1.6.zip RelieveClimate.xcodeproj], pragmatic program method described as below:
*Relieve Climate application uses UITabBarController outlet and set as a rootController.
*Each tab contains with NavigationController responding to switching between view.
''JourneyIndexViewController''
*JourneyIndexViewController is a controller contains with ZxingWidgetController class. ZxingWidgetController class inherited from dependency project ZxingWidget.xcodeproj that included to Relieve Climate project.  ZxingWidgetController is implemented for enable QR-Code scanner.
*NSUserDefaults called for saving and loading user's datas.(distance, Carbon Dioxide, fuel)
''CheckInViewController''
*Display a map by calling subclass MKMapview and set map region and span by MKCoordinateRegion and MKCoordinateSpan respectively.
*Enable GPS and update realtime coordination by CLLocationManager subclass and CLLocationCoordinate2D  and get the distance from CLLocationDistance.
*Set an accuracy of updating distance by CLLocationAccuracy subclass.
*Calculate Carbon Dioxide amount and fuel number by mathematic operation *,/
''BrainTrainViewController''
*Display 'Brain Train Tip' subview by UIWebView path to pdf file.
''JourneySummaryViewController''
*Pass value from CheckInViewController then contain in .text object, finally, display in view.
''MyRewardViewController''
*Visualize data by implementing Box2D physics engine. Create collision environment aka. world
*Add body (diamond shape) to world by function addPhysicalBodyForView:
*Set center of mass to body using CGPoint subclass.
*Set density, friction, restitution calling b2PolygonShape.


==You want to try Relieve Climate?==
==You want to try Relieve Climate?==

Latest revision as of 12:10, 19 July 2012

 IMPORTANT!!:please kindly download full project description from the link below:
 Media:Relieve_Climate_iOS_Application_WS_11.pdf  

Relieve Climate Synopsis

Problem

At the present day, people rely on personal comfort than responding to environment issue. As a result, using private vehicles:- cars, motorcycle not only making more air pollution than taking a train or railway system but also consuming more energy and fuel respectively. Furthermore, traffic jam problem in a metropolis is accordingly caused by high increase rate of personal vehicles. Beside, main emission from vehicles' engine fuel ignition are Carbon Dioxide gas which able to severely damage human respiratory system. Last but not least, exhaust gases aka. Green House gases:- Carbon Dioxide and Carbon Monoxide are the majority cause of climate change and global warming.

See how is nowadays Global Warming situation via the video below:

<videoflash type=vimeo>32591989|518|245</videoflash>

An Inconvenient Truth: Albert Arnold "Al" Gore, Jr.
video credit: http://vimeo.com/buck

Project Objective

I introduce an iOS application namely Relieve Climate ,which supports Mobility Management (MM). Mobility Management measures is a pull, a new concept in a developed country is expected to effectively manage the growing amount of private car. The main idea is to give knowledge or publicity information related to travel through the cooperation between various departments. Along with the use of tools or measures to encourage motorists to change their attitudes and behavior on the trip (Voluntary Behavior Change). Relieve Climate responds to impulse daily car users to get involved to public transportation focusing on Bangkok Transit System (BTS) skytrain located in Bangkok Thailand. The application continuously keeps tracking user's trip data presenting in a quantity of saved Carbon Dioxide. After that, visualizes the data to become semi-tangible graphic on the device’s interface. Furthermore, marketing technique is a key implemented to this Mobility Management. As a result , the applicants who cumulatively collect a bunch of Carbon Dioxide data would be rewarded with a prize from official sponsors collaborating with BTS skytrain. The expect result of the application is demanding less car use and convinced to take a public transport.

Demonstration Phase and Target Audience


  • For the alpha (prototype phase), the application focuses integrating in public skytrain in Bangkok, Thailand namely BTS(Bangkok Mass Transit System) Skytrain.
  • The application focuses on iOS smart device holders, soon, on Android OS and etc.
  • The main target application is a motorist who rarely take BTS Skytrain. However, daily or repetitive passengers are also in target group.

Relieve Climate Features and USPs


  • Real-time Portable Data Tracker: Relieve Climate is an application which installed in mobile device and able to immediately synthesize the visualization once finishing tracking the data. To view user own data, no need to connect to personal computer or laptop.
  • Ease to use: According to Human Interface Guide (HIG) which is a document that Apple distributes for guidance in developing iPhone Apps for sale on the App Store. Relieve Climate perfectly follow rules and restrictions in HIG, as a result, the application is easy to use and no instruction is required.
  • QR-Code Reader embedded: Relieve Climate uses Zxing(pronounced zebra crossing) QR-Code scanner library which provides powerful scanner function via mobile camera. Quick and easy scanning are applicable perfectly to application.
  • GPS and Mapkit embedded: To view current position while checking-in, Mapkit used for previewing a position on Google map. Furthermore, GPS device can also inform exact position of user.
  • Brain Train Tip Feature: The application provides brain improvement while user get involved to application. For example, while users is activating journey, they are able to read hints of idea which provide a little knowledge according to general subject in our life such as health, sciences, history, life style and etc.

Relieve Climate Concept Approach

Below teaser video illustrates about how Relieve Climate works.

<videoflash type=vimeo>36056740|518|245</videoflash>

To revise my first concept of this project you may want to visit Interface design showreel

Test Run and Result of Project

First experiment using Relieve Climate application running on iPad II iOS 4.2 at the real site, I experimented at the train station in Weimar, traveled to Jena Germany. To test an accuracy of GPS, I set the most accurated GPS indicator. The distance between Weimar and Jena is 23 kms and spent approximately 24 minutes long. The details of test run are explained as below:

<videoflash type=vimeo>38131128|518|245</videoflash>

  • Once I opened the application, Relieve Climate was launced and splash screen worked properly lasting 3 seconds.
  • To activate QR-Code scanner, I touched the ‘Check-in Journey’ button and QR-Code scanner worked properly. The application called iOS device’s camera viewfinder by ImagePicker subclass from UIKit superclass in iOS programming section.
  • To scan the QR-Code, I scanned the QR-Code via the viewfinder. Not over than 1 second, QR-Code was detected. I tested from the distance between iOS device and QR-Code sign from 1 meter to 7 meters, the scanner worked accurately.
  • After scanning QR-Code, GPS navigator indicated the current user postion accurately. Sometimes, location pin swinged at the beginning and the distance indicator was unstable between 1 meter - 5 meters. According to the Apple Developer community, plenty of developer complained this GPS instability. Finally, in iOS 4.3 this problem was dissolved by Apple Inc.
  • While traveling, GPS navigator worked properly, however, somewhere, where was lack of signal causing inaccurated distance evaluation.
  • ‘Brain Train Tip’ feature recalled properly and did not affect to main process.
  • When arrived at arrival station Jena, a journey result was evaluated properly, eventhough, Carbon Dioxide quantity result slightly deviated from bahn.de reference.
  • A data visualization part typically worked. A number of diamond evaluated correctly according to formular which applied in the programming code.

Relieve Climate Screenshots


Programming Technique

NOTICE: For your convenient, I packed project folder into Zxing-1.6 folder path. Hence, you have to only download from the link then uncompressed the file to your hard drive. Then, find Relieve Climate folder under Zxing-1.6/iphone/

I have created this application using Xcode 3.2 debugging on iOS 4.2 iPad II. According to RelieveClimate.xcodeproj, pragmatic program method described as below:

  • Relieve Climate application uses UITabBarController outlet and set as a rootController.
  • Each tab contains with NavigationController responding to switching between view.

JourneyIndexViewController

  • JourneyIndexViewController is a controller contains with ZxingWidgetController class. ZxingWidgetController class inherited from dependency project ZxingWidget.xcodeproj that included to Relieve Climate project. ZxingWidgetController is implemented for enable QR-Code scanner.
  • NSUserDefaults called for saving and loading user's datas.(distance, Carbon Dioxide, fuel)

CheckInViewController

  • Display a map by calling subclass MKMapview and set map region and span by MKCoordinateRegion and MKCoordinateSpan respectively.
  • Enable GPS and update realtime coordination by CLLocationManager subclass and CLLocationCoordinate2D and get the distance from CLLocationDistance.
  • Set an accuracy of updating distance by CLLocationAccuracy subclass.
  • Calculate Carbon Dioxide amount and fuel number by mathematic operation *,/

BrainTrainViewController

  • Display 'Brain Train Tip' subview by UIWebView path to pdf file.

JourneySummaryViewController

  • Pass value from CheckInViewController then contain in .text object, finally, display in view.

MyRewardViewController

  • Visualize data by implementing Box2D physics engine. Create collision environment aka. world
  • Add body (diamond shape) to world by function addPhysicalBodyForView:
  • Set center of mass to body using CGPoint subclass.
  • Set density, friction, restitution calling b2PolygonShape.

You want to try Relieve Climate?

I appreciate if you would like to try Relieve Climate. For further information about installing the application or if you have a question about the project. Please feel free to contact me at patawat.phamuad@uni-weimar.de

Now let's begin with an installation.

What do you need?

1. You need iOS device 3rd or 4th generation: iPhone3, iPhone4, iPhone 4S, iPod Touch 3G, iPod Touch 4G and iPad I&II. which has GPS navigator embedded. And, data connection cable. Your device iOS must be iOS 3.0 or later.
2. MacOS device i.e. Macbook, Macbook Pro, iMac, Mac mini or PC which able to run MacOS.
3. iOS Developer account.
4. Xcode IDE.

How can you install Relieve Climate?

At the present development phrase, Relieve Climate now is not available on App store but soon. Therefore, what you need to do are:

1. Follow fundamental iOSDev instruction to setup Xcode and obtain your code sign.
2. Connect your iOS device with your Mac by datalink cable.
3. Download Relieve Climate project. Then locate downloaded file to your hard drive.

 IMPORTANT!: Relieve Climate project folder must be located in zxing-1.6/iphone folder.

4. Open RelieveClimate.xcodeproj
5. Build and Run project by debugging on device. The project can also run in Simulator but cannot enable QR-Code scanner. ;'(

Project References

Project Inquiry and inspiration::

Technologies::

Referred document resources::

Definition and measures of Mobility Management

Bangkok Transit System (BTS) Fact sheets

Emissions of carbon dioxide per capital

Automotive Statistics


88x31.png

Relieve Climate by Patawat Phamuad is licensed under Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported License