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

View Properties

Intrinsic Content Size
Compression Resistance
Content Hugging

-stack view
axis, spacing, alignment, distribution

happily modifies size of view
-> fill(default), fill equally, fill proportionally

works hard not to modify size of views
->equal spacing, equal centering

alignment -horizontal stack views
text-> ascender, baseline, descender

guiding principles of autolayout
-stackView first, constraints later
-Start small, or not at all
-Work from the inside out
-Trust the simulator only
-Don’t panic

Seven Commandments of AutoLayout
1. Tweak the properties of the StackView
2. Use another StackView
3. Tweak the compression resistance or the hugging priority
4. Add constraints to the StackView
5. Add constraints to the views
6. To connect views within different StackViews, use V.
7. If everything else fails, use a filler view

AutoLayout

-Laying out the views
-Deciding how these views will adapt when the available screen size changes

import UIKit

class CodeViewController:
	UIViewController {

	override func loadView(){
		code
	}
}

-screen size changes
iphone se, iphone 6+
rotaion

code, xibs, storyboards

-Swift Code(NSLayoutConstraint)
-Visual Format Code
-Creating constraints in IB

UIStackView

MediaPlayer resources

/**
 * Clean up the media player by releasing its resources.
 */

private void releaseMediaPlayer(){
	if (mMediaPlayer != null){
		mMediaPlayer.release();

		mMediaPlayer = null;
	}  
}

Activity Lifecycle
-create, started, resumed, (User is interacting with app) paused, stopped, destroyed

http://androidniceties.tumblr.com/

States of Media Player

Idle -> Prepared -> Started -> Pause -> Stopped

object data type, variable name = object data type. factory method name(input arguments);

static method
MediaPlayer.create(context, R.raw.song);

Non-static (regular) Method
myMediaPlayer.start();

listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
	@Override
	public void onItemClick(AdapterView<?> parent, View view, int position, long id){
		mMediaPlayer = MediaPlayer.create(NumbersActivity.this, R.raw.number_one);
		mMediaPlayer.start();
	}
});
@Override
	public String toString(){
		return "Word{" +
		"mDefaultTranslation='" + mDefaultTranslation + '\'' +
		", mMiwokTranslation='" + mMiwokTranslation + '\'' +
		", mAudioResourceId=" + mAudioResourceId +
		", mImageResourceId=" + mImageResourceId +
		'}'; 
	}

Word word = words.get(position);
Log.v("NumbersActivity", "Current word: " + word);
mMediaPlayer = MediaPlayer.create(PhrasesActivity.this, word.getAudioResourceId());
mMediaPlayer.start();
	}
});