SlideShare ist ein Scribd-Unternehmen logo
1 von 10
whereiam Introduction
(v0.2)

John Yin
Sep. 2013
Requirement
•

Mobile Web Application Scenario

•

The following scenario should be completed using the these technologies HTML5, Sencha and PhoneGap.
Additional frameworks can also be utilised if necessary (jQuery, JavaScript, PHP).

•

Main Screen - This screen will consist of a tab bar that resides at the top of the sceen and which contains three
buttons.

•
•

1. The first tab is a navigation controller. The root view has one button and by
pressing this button it will acquire the device's current location in Latitude/Longitude, create a new view and then
push it to the navigation view with a transition effect. Display the Latitude and Longitude as numeric values on the
screen and also convert it to the real address (street, city, etc) using a service of your choice (Google's
GeoLocate API, etc).

•

2. The second tab shows the map with the current position if device's position was obtained on the first tab. If
position is not detected show a relevant error message.

•
•

3. The third tab is a table view with an 'Add' button in top bar.
When clicked a text field and a button labelled 'DONE' should appear. The text field should allow a user to enter a
URL to an image. After the 'DONE' button is clicked, the image should obtained from the entered URL and
displayed in the table. The associated URL string should be placed in another cell besides the image. The image
should also be able to be downloaded and opened locally.

•

2
Technology
We build ‘whereiam’ with following features:
•

Develop tool: Sencha Architect -> Sencha Touch (2.*)

•

Use HTML 5 Geolocation API to fetch device's geography address:
latitude and longitude

•

Use Google Map API to convert geo address to real world detail
address: no, street/road, city, state, country, postcode

•

Use Memory Proxy to read the newly created JSON data (the
detail address) into Store and show them out on one data List

•

The default Welcome Panel and detail address List are Card
Layout children of their common Container, so as to be actived
on reqired

3
Storyboard (viewd on Mobile)
Screen Width <= 480

Screen Width <= 480

Screen Width <= 480

4
App Structure
App controller for logical dispatches
the Main Navigation for future extension
one Ref to the default view: WhereiamTab
one Tab Bar to better control each Tab
one Tab item having Card layout
the default ‘Welcome’ Panel
One container having address List
one Toolbar better control button
one Map component using Google Map API
one Memory Store to load memory data
one data Model having data definitions
link to Sencha Touch library
link to Google Maps API library
one css style file: whereiam.css

5
App Initialization
Ext.application( name: MyApp )
launch()
MyApp.view.MainNavi
render( View item: WhereiamTabs )
MyApp.view.WhereiamTabs
render( View item: AddressTab)
MyApp.view.AddressTab
render( active View item: welcomePanel )
welcomePanel.render(html)
render( Toolbar )
Toolbar.render( Button )

6
Main Process: onButtonTap
Controller.onButtonTap()
To fetch Latitude/Longitude
Controller.getPosition( callback1: getAddress() )
Parameter( location )

To decode and store detail address

callback1: Controller.getAddress( callback2 )
To load data to view

Parameters( location, store )

callback2: Controller.getAddressList.setStore()
Tap event listener

Tap button

To show detail address
Controller.Ref( addressTab ).setActiveItem( )

7
List ?
Use List component to show detail
address, rather than one Html Panel
or any other types View:
- To practise the whole process of
manipulating JSON data: to fetch by
proxy, to save into store/model,
and to show on view
- Not need to make a custome list
css style

8
Error Handling

Any time, when Errors or failed
conditions happenning, one Ext.Msg
box will pop out with necessary
information.
When in production, it’s better to
have one custome Error handling.

9
Compatibility Test
This app still can not run normally on
Firefox OS most likely caused by version
compatibility issues.
Before launch on production, it’s
necessary to make a series of test on all
kind of OS and browser emulators, like
iOS, Android, Windows Phone/Mobile.

10

Weitere ähnliche Inhalte

Kürzlich hochgeladen

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Kürzlich hochgeladen (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 

Empfohlen

Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Saba Software
 

Empfohlen (20)

Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
 

Where I Am (v0.2) introduction by john yin

  • 2. Requirement • Mobile Web Application Scenario • The following scenario should be completed using the these technologies HTML5, Sencha and PhoneGap. Additional frameworks can also be utilised if necessary (jQuery, JavaScript, PHP). • Main Screen - This screen will consist of a tab bar that resides at the top of the sceen and which contains three buttons. • • 1. The first tab is a navigation controller. The root view has one button and by pressing this button it will acquire the device's current location in Latitude/Longitude, create a new view and then push it to the navigation view with a transition effect. Display the Latitude and Longitude as numeric values on the screen and also convert it to the real address (street, city, etc) using a service of your choice (Google's GeoLocate API, etc). • 2. The second tab shows the map with the current position if device's position was obtained on the first tab. If position is not detected show a relevant error message. • • 3. The third tab is a table view with an 'Add' button in top bar. When clicked a text field and a button labelled 'DONE' should appear. The text field should allow a user to enter a URL to an image. After the 'DONE' button is clicked, the image should obtained from the entered URL and displayed in the table. The associated URL string should be placed in another cell besides the image. The image should also be able to be downloaded and opened locally. • 2
  • 3. Technology We build ‘whereiam’ with following features: • Develop tool: Sencha Architect -> Sencha Touch (2.*) • Use HTML 5 Geolocation API to fetch device's geography address: latitude and longitude • Use Google Map API to convert geo address to real world detail address: no, street/road, city, state, country, postcode • Use Memory Proxy to read the newly created JSON data (the detail address) into Store and show them out on one data List • The default Welcome Panel and detail address List are Card Layout children of their common Container, so as to be actived on reqired 3
  • 4. Storyboard (viewd on Mobile) Screen Width <= 480 Screen Width <= 480 Screen Width <= 480 4
  • 5. App Structure App controller for logical dispatches the Main Navigation for future extension one Ref to the default view: WhereiamTab one Tab Bar to better control each Tab one Tab item having Card layout the default ‘Welcome’ Panel One container having address List one Toolbar better control button one Map component using Google Map API one Memory Store to load memory data one data Model having data definitions link to Sencha Touch library link to Google Maps API library one css style file: whereiam.css 5
  • 6. App Initialization Ext.application( name: MyApp ) launch() MyApp.view.MainNavi render( View item: WhereiamTabs ) MyApp.view.WhereiamTabs render( View item: AddressTab) MyApp.view.AddressTab render( active View item: welcomePanel ) welcomePanel.render(html) render( Toolbar ) Toolbar.render( Button ) 6
  • 7. Main Process: onButtonTap Controller.onButtonTap() To fetch Latitude/Longitude Controller.getPosition( callback1: getAddress() ) Parameter( location ) To decode and store detail address callback1: Controller.getAddress( callback2 ) To load data to view Parameters( location, store ) callback2: Controller.getAddressList.setStore() Tap event listener Tap button To show detail address Controller.Ref( addressTab ).setActiveItem( ) 7
  • 8. List ? Use List component to show detail address, rather than one Html Panel or any other types View: - To practise the whole process of manipulating JSON data: to fetch by proxy, to save into store/model, and to show on view - Not need to make a custome list css style 8
  • 9. Error Handling Any time, when Errors or failed conditions happenning, one Ext.Msg box will pop out with necessary information. When in production, it’s better to have one custome Error handling. 9
  • 10. Compatibility Test This app still can not run normally on Firefox OS most likely caused by version compatibility issues. Before launch on production, it’s necessary to make a series of test on all kind of OS and browser emulators, like iOS, Android, Windows Phone/Mobile. 10