Giter Site home page Giter Site logo

captechchallengetwo's Introduction

CapTech Challenge Two (Swift / iOS)

CapTech code challenge number 2

1. Assignment

This assignment, the second in the series, will familiarize the student with HTTP based network communications and XML parsing on the target platform. This assignment can be done for iOS, Android, mobile web, or any combination thereof.

The application must do the following:
  • Retrieve historical earthquake data from the U.S. Geological Survey (USGS) and produce a table displaying information about earthquakes that have occurred in the past 30 days. The recommended approach section has a URL for the data.

  • The view of earthquake events must be sorted in descending date order.

  • Each item must display the following information in a pleasing and easy to read format:

    • The USGS title for the quake
    • The latitude and longitude of the quake
    • The time the quake occurred in local time
  • The user must be able to force a reload of the view.

  • When the user reloads the view, the server should be re-queried and the view reloaded with all quake data received from the server.

  • The user must be able to selectively delete table items using a gesture familiar to uses of that platform.

  • If the user selects a row the app should open an internal web browser control (native only) with a link to the full quake information at the USGS site.

  • The items with an earthquake of magnitude 5 or higher must be shaded in light red.

  • The items with a quake of magnitude 7 or higher must be shaded in red.

  • The application must cleanly and correctly handle network failures or the absence of a network.

  • The application must display some indicator that the application is busy during data loads.

  • The application UI must remain responsive to user input during the data load process.

  • The application must not crash or leak memory.

  • The structure of the application must be well structured and understandable.

  • If you’re completing this task using the mobile web technology, there may be no server side logic other than delivery of HTML/JS/CSS content to the phone. All other logic, storage, etc. must occur on the phone itself.

2. Assignment Prerequisites

Assignment #1 of the mobile development boot camp should be completed before starting this assignment.

3. Assignment Objectives

When completed the student should have an understanding of the following concepts:

  • HTTP request and response handling
  • JSON parsing
  • String manipulation
  • Display theming and modifications including custom table rows
  • Table row manipulation

4. Recommended Approach

3. Getting started

  1. Open xcode and start a new project as a single page application
  2. Initialize git from the project directory with git init
  3. Create a gitHub repo for this project
  • Add your project to your new repo

4. Extension Challenges

  1. Add testing to the application, using UI, Unit, or a mix of both
  2. Add a map to the application that displays quakes that have a magnitude of 3.5 or greater as annotations

captechchallengetwo's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.