Overview of JSON

Overview of JSON

JavaScript Object Notation

{
	"size": 9.5,
	"wide": true,
	"country-of-origin" : "usa",
	"style": {
		"categories": ["boot", "winklepicker"],
		"color": "black"
	}
}

number, boolean, string

https://api.twitter.com/1.1/favorites/list.json?count=2&screen_name=episod

https://www.instagram.com/developer/endpoints/media/#get_media

list_item.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="match_parent"
	android:layout_height="wrap_content"
	android:gravity="center_vertical"
	android:orientation="horizontal"
	android:minHeight="?android:attr/listPreferredItemHeight"
	android:padding="16dp">

	<ImageView
		android:id="@+id/list_item_icon"
		android:layout_width="50dp"
		android:layout_height="50dp" />

	<LinearLayout
		android:layout_width="0dp"
		android:layout_height="wrap_content"
		andorid:layout_weight="1"
		android:orientation="vertical"
		android:padding="16dp">

		<TextView
			android:id="@+id/version_name"
			android:layout_width="wrap_content"
			android:layout_height="wrap_content" />

		<TextView
			android:id="@+id/version_name"
			android:layout_width="wrap_content"
			android:layout_height="wrap_content" />

	</LinearLayout>

</LinearLayout>

USGS earthquake API parameters

USGS earthquake API parameters

parameter name: description
mag: short for “magnitude”
place: where the earthquake occurred
time: when the earthquake occurred
felt: how strong this quake was felt
tsunami: was there a tsunami alert issued?
title: the title of the quake (mag + place)
coordinates: where the earthquake occured (long, lat, depth)

package com.example.android.quakereport;

import android.os.Bundle;
import android.support.v7.app.AppCompactActivity;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import java.util.ArrayList;

public class EarthquakeActivity extends AppCompactActivity {

	public static final String LOG_TAG = EarthquakeActivity.class.getName();

	@Override
	protected void onCreate(Bundle savedInstanceState){
		super.onCreate(savedInstanceState);
		setContentView(R.layout.earthquake_activity);

		ArrayList<String> earthquakes = new ArrayList<>();
		earthquakes.add("San Fransisco");
		earthquakes.add("London");
		earthquakes.add("Tokyo");
		earthquakes.add("Mexico City");
		earthquakes.add("Moscow");
		earthquakes.add("Rio de Janeiro");
		earthquakes.add("Paris");

		ListView earthquakeListView = (ListView) findViewById(R.id.list);

		ArrayAdapter<String> adapter = new ArrayAdapter<String>(
			this, android.R.layout.simple_list_item_1, earthquakes);

		earthquakeListView.setAdapter(adapter);

		
	}
}

USGS spreadsheet format

https://earthquake.usgs.gov/earthquakes/feed/v1.0/csv.php

real-time data provided by USGS in spreadsheet format, most useful data in app.
date, latitude, longitude, depth, magnitude, place, type

For Developers API documentation
https://earthquake.usgs.gov/fdsnws/event/1/

Get geojson data from query and parameter
https://earthquake.usgs.gov/fdsnws/event/1/query?starttime=2017-04-29&endtime=2017-04-30&format=geojson

json pretty print
http://jsonprettyprint.com/

-time is unix timestamp

more than 4.5 magnitude
https://earthquake.usgs.gov/fdsnws/event/1/query?starttime=2017-04-29&endtime=2017-04-30&format=geojson&minmagnitude=4.5

Better Practice for User Interface

Best practices for User Interface
https://developer.android.com/training/best-ui.html

-Designing for Multiple Screens
How to build a user interface that’s flexible enough to fit perfectly on any screen and how to create different interaction patterns that are optimized for different screen sizes.

-Build a Responsible UI with ConstraintLayout
How to build a layout using ConstraintLayout and the Android Studio Layout Editor.

-Adding the App Bar
How to use the support library’s toolbar widget to implement an app bar that displays properly on a wide range of devices.

-Showing Pop-Up Message
How to use the support library’s Snackbar widget to display a brief pop-up message.

-Creating Custom Views
How to build custom UI widgets that are interactive and smooth.

-Creating Backword-Compatible UIs
How to use UI components and other APIs from the more recent versions of Android while remaining compatible with older versions of the platform.

-Implementing Accessibility
How to make your app accessible to users with vision impairment or other physical disabilities.

-Managing the System UI
How to hide and show status and navigation bars across different versions of Android, while managing the display of other screen components.

-Creating Apps with Material Design
How to implement material design on Android.

Alteryx

Alteryx: here we go
https://pages.alteryx.com/free-trial.html

sources of data
-transactional, devices, collected

categories of data
-structured, unstructured, semi-structured

structured data
-columns(fields) and rows

Vertical Layouts

Label, imageView, Button

One Whole: numerator / denominator
Recipracal

repeated multiplication base^exponent
3^0 = 1
4^-1 = 1/4
4^-2 = 1/16
4^-3 = 1/56

be care for negative exponent
-(1/3)^-2

a cell divides into 4 cells after 2hours. how many cells are there after one day?
4^12 = 16777216