-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
chiara
committed
Apr 6, 2015
1 parent
40ae25d
commit c8c81f4
Showing
18 changed files
with
327 additions
and
13 deletions.
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,224 @@ | ||
<html> | ||
<head> | ||
<title>index.jade</title> | ||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | ||
<style type="text/css"> | ||
.ln { color: rgb(0,0,0); font-weight: normal; font-style: normal; } | ||
.s0 { } | ||
</style> | ||
</head> | ||
<BODY BGCOLOR="#ffffff"> | ||
<TABLE CELLSPACING=0 CELLPADDING=5 COLS=1 WIDTH="100%" BGCOLOR="#C0C0C0" > | ||
<TR><TD><CENTER> | ||
<FONT FACE="Arial, Helvetica" COLOR="#000000"> | ||
index.jade</FONT> | ||
</center></TD></TR></TABLE> | ||
<pre> | ||
|
||
<span class="s0">doctype html | ||
html | ||
head | ||
meta(charset='utf-8') | ||
meta(name='viewport', content='width=device-width, initial-scale=1, maximum-scale=1') | ||
title Android development: from an idea to your first (tested) app | ||
|
||
link(rel='stylesheet', type='text/css', href='build/build.css') | ||
|
||
body | ||
|
||
article | ||
|
||
section | ||
h1 Android development: from an idea to your first (tested) app | ||
|
||
section.richmond-view | ||
div.background-div | ||
h2 Chiara Chiappini | ||
h3 Agile Software Developer @eBay | ||
h3 <a href="http://twitter.com/chiarachiappini">@chiarachiappini</a> | ||
|
||
section.richmond-food-background | ||
div.background-div | ||
h2 Life is tough at eBay | ||
|
||
section.my-idea-background | ||
div.background-div | ||
h2 What's the weather like in Richmond today? | ||
|
||
section.baby-lego-background | ||
div.background-div | ||
h2 Time to build | ||
h3.bullet | ||
ul | ||
li <a href="https://developer.android.com/training/basics/firstapp/index.html">Android studio</a> | ||
li <a href="https://www.genymotion.com/#!/">Genymotion</a> | ||
li <a href="https://gradle.org/">Gradle</a> | ||
|
||
section | ||
div.background-div | ||
h2 Main activity | ||
pre.size-dimension | ||
code.language-javascript. | ||
protected void onCreate(Bundle savedInstanceState) { | ||
........ | ||
|
||
toolbar = (Toolbar) findViewById(weather_toolbar); | ||
toolbar.setTitle("Richmond"); | ||
setSupportActionBar(toolbar);<br> | ||
|
||
tempView =(TextView) findViewById(weather_temp); | ||
tempView.setText(15);<br> | ||
|
||
descriptionView = (TextView) findViewById(weather_description); | ||
descriptionView.setText("Sun is shining");<br> | ||
|
||
iconView = (ImageView) findViewById(weather_icon); | ||
iconView.setImageResource(R.drawable.sun); | ||
|
||
section | ||
div.background-div | ||
h2 Layout | ||
include layout.html | ||
|
||
section | ||
div.background-div | ||
h2 Result | ||
|
||
section.people-coding-background | ||
div.background-div | ||
h2.bullet Now the real fun starts | ||
br | ||
ul | ||
li New features | ||
li Someone is joining you | ||
|
||
section.quality | ||
div.background-div | ||
h2 I need testing | ||
|
||
section | ||
div.background-div | ||
h2 Testing frameworks for Android | ||
|
||
section | ||
div.background-div | ||
h2 Unit testing | ||
br | ||
ul | ||
li Extract all the java code in a separate module and test as unit tests | ||
li Unit testing support Android Studio 1.1 | ||
li Use Instrumentation or Robotium | ||
|
||
section | ||
div.background-div | ||
h2 Java module - test | ||
pre.size-dimension | ||
code.language-javascript. | ||
public class WeatherOracleTest { | ||
@Test | ||
public void testWeatherOracle(){ | ||
assertEquals(SUN_IS_SHINING, weatherOracle.getWeather()); | ||
} | ||
|
||
section | ||
div.background-div | ||
h2 Java module - code | ||
pre.size-dimension | ||
code.language-javascript. | ||
public class WeatherOracle { | ||
public static final String SUN_IS_SHINING = "Sun is shining";<br> | ||
public String getWeather(){ | ||
return SUN_IS_SHINING; | ||
} | ||
|
||
section | ||
div.background-div | ||
h2 Functional testing | ||
pre.size-dimension | ||
code | ||
| @Test | ||
| public void userCanGetWeatherInLondon() {<br> | ||
| WebElement weatherButton = findWeatherButton();<br> | ||
| weatherButton.click();<br> | ||
| WebElement weatherText = findWeatherText(); | ||
| assertEquals(SUN_IS_SHINING, weatherText.getText()); | ||
|
||
section | ||
div.background-div | ||
h2 Testing and CI | ||
h3 Get feedback as early as possible (you’ll be fixing things late) | ||
h3 CI tools help to facilitate not only building, testing and deploying software, but the entire release process | ||
h3 Importance of alerting | ||
h3 Record their result | ||
h3 First step to continue deployment? | ||
|
||
section | ||
div.background-div | ||
h2 Your CI alternatives | ||
h3.bullet | ||
br | ||
ul | ||
li Travis | ||
li Jenkins | ||
li ..and many more | ||
|
||
section.queue | ||
div.background-div | ||
h2 Travis | ||
h3.bullet | ||
br | ||
ul | ||
li free for public repositories | ||
li community boxes and in queues | ||
li subscription for no waiting and concurrent jobs | ||
|
||
section | ||
div.background-div | ||
h2 Travis configuration | ||
h3 .travis.yml | ||
pre.size-dimension | ||
code | ||
| language: android | ||
| jdk: oraclejdk7 | ||
| env: | ||
| matrix: | ||
| - ANDROID_TARGET=android-19 ANDROID_ABI=armeabi-v7a | ||
| ...<br> | ||
| before_script: | ||
| # Create and start emulator | ||
| - echo no | android create avd --force -n test -t $ANDROID_TARGET --abi $ANDROID_ABI | ||
| - emulator -avd test -no-skin -no-audio -no-window & | ||
| - adb wait-for-device | ||
| - adb shell input keyevent 82 &<br> | ||
| script: | ||
| - ./gradlew clean build | ||
|
||
section | ||
div.background-div | ||
h2 My CI little story | ||
|
||
|
||
section.second-activity-background | ||
div.background-div | ||
h2 let's code the second activity | ||
pre.size-dimension | ||
code | ||
| public class WeatherActivity extends Activity { | ||
|
||
| @Override | ||
| protected void onCreate(Bundle savedInstanceState) { | ||
| super.onCreate(savedInstanceState); | ||
| setContentView(R.layout.activity_weather); | ||
| } | ||
|
||
pre.size-dimension | ||
code | ||
| &#60;TextView android:text="@string/sun_is_shining" | ||
| android:layout_width="wrap_content" | ||
| android:layout_height="wrap_content" /&#62;; | ||
|
||
|
||
script(src='build/build.js') | ||
</span></pre> | ||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
<html> | ||
<head> | ||
<title>layout.html</title> | ||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> | ||
<style type="text/css"> | ||
.ln { color: rgb(0,0,0); font-weight: normal; font-style: normal; } | ||
.s0 { } | ||
.s1 { color: rgb(0,0,128); font-weight: bold; } | ||
.s2 { color: rgb(0,0,255); font-weight: bold; } | ||
.s3 { color: rgb(0,128,0); font-weight: bold; } | ||
</style> | ||
</head> | ||
<BODY BGCOLOR="#ffffff"> | ||
<TABLE CELLSPACING=0 CELLPADDING=5 COLS=1 WIDTH="100%" BGCOLOR="#C0C0C0" > | ||
<TR><TD><CENTER> | ||
<FONT FACE="Arial, Helvetica" COLOR="#000000"> | ||
layout.html</FONT> | ||
</center></TD></TR></TABLE> | ||
<pre> | ||
|
||
<span class="s0"><</span><span class="s1">html</span><span class="s0">> | ||
<</span><span class="s1">head</span><span class="s0">> | ||
<</span><span class="s1">meta </span><span class="s2">http-equiv=</span><span class="s3">"Content-Type" </span><span class="s2">content=</span><span class="s3">"text/html; charset=utf-8"</span><span class="s0">> | ||
<</span><span class="s1">style </span><span class="s2">type=</span><span class="s3">"text/css"</span><span class="s0">> | ||
.ln { color: rgb(0,0,0); font-weight: normal; font-style: normal; } | ||
.s0 { } | ||
.s1 { color: rgb(0,0,128); font-weight: bold; } | ||
.s2 { color: rgb(0,0,255); font-weight: bold; } | ||
.s3 { color: rgb(0,128,0); font-weight: bold; } | ||
</</span><span class="s1">style</span><span class="s0">> | ||
</</span><span class="s1">head</span><span class="s0">> | ||
<</span><span class="s1">BODY </span><span class="s2">BGCOLOR=</span><span class="s3">"#ffffff"</span><span class="s0">> | ||
<</span><span class="s1">TABLE </span><span class="s2">CELLSPACING=</span><span class="s3">0 </span><span class="s2">CELLPADDING=</span><span class="s3">5 </span><span class="s2">COLS=</span><span class="s3">1 </span><span class="s2">WIDTH=</span><span class="s3">"100%" </span><span class="s2">BGCOLOR=</span><span class="s3">"#C0C0C0" </span><span class="s0">> | ||
<</span><span class="s1">TR</span><span class="s0">><</span><span class="s1">TD</span><span class="s0">><</span><span class="s1">CENTER</span><span class="s0">> | ||
</</span><span class="s1">center</span><span class="s0">></</span><span class="s1">TD</span><span class="s0">></</span><span class="s1">TR</span><span class="s0">></</span><span class="s1">TABLE</span><span class="s0">> | ||
<</span><span class="s1">pre</span><span class="s0">> | ||
<</span><span class="s1">span </span><span class="s2">class=</span><span class="s3">"s1"</span><span class="s0">>Button</</span><span class="s1">span</span><span class="s0">><</span><span class="s1">span </span><span class="s2">class=</span><span class="s3">"s0"</span><span class="s0">> | ||
</</span><span class="s1">span</span><span class="s0">><</span><span class="s1">span </span><span class="s2">class=</span><span class="s3">"s2"</span><span class="s0">>android:layout_width=</</span><span class="s1">span</span><span class="s0">><</span><span class="s1">span </span><span class="s2">class=</span><span class="s3">"s3"</span><span class="s0">></span><span class="s2">&quot;</span><span class="s0">wrap_content</span><span class="s2">&quot;</span><span class="s0"></</span><span class="s1">span</span><span class="s0">><</span><span class="s1">span </span><span class="s2">class=</span><span class="s3">"s0"</span><span class="s0">> | ||
</</span><span class="s1">span</span><span class="s0">><</span><span class="s1">span </span><span class="s2">class=</span><span class="s3">"s2"</span><span class="s0">>android:layout_height=</</span><span class="s1">span</span><span class="s0">><</span><span class="s1">span </span><span class="s2">class=</span><span class="s3">"s3"</span><span class="s0">></span><span class="s2">&quot;</span><span class="s0">wrap_content</span><span class="s2">&quot;</span><span class="s0"></</span><span class="s1">span</span><span class="s0">><</span><span class="s1">span </span><span class="s2">class=</span><span class="s3">"s0"</span><span class="s0">> | ||
</</span><span class="s1">span</span><span class="s0">><</span><span class="s1">span </span><span class="s2">class=</span><span class="s3">"s2"</span><span class="s0">>android:text=</</span><span class="s1">span</span><span class="s0">><</span><span class="s1">span </span><span class="s2">class=</span><span class="s3">"s3"</span><span class="s0">></span><span class="s2">&quot;</span><span class="s0">@string/weather_richmond</span><span class="s2">&quot;</span><span class="s0"></</span><span class="s1">span</span><span class="s0">><</span><span class="s1">span </span><span class="s2">class=</span><span class="s3">"s0"</span><span class="s0">> | ||
</</span><span class="s1">span</span><span class="s0">><</span><span class="s1">span </span><span class="s2">class=</span><span class="s3">"s2"</span><span class="s0">>android:id=</</span><span class="s1">span</span><span class="s0">><</span><span class="s1">span </span><span class="s2">class=</span><span class="s3">"s3"</span><span class="s0">></span><span class="s2">&quot;</span><span class="s0">@+id/weather_button</span><span class="s2">&quot;</span><span class="s0"></</span><span class="s1">span</span><span class="s0">><</span><span class="s1">span </span><span class="s2">class=</span><span class="s3">"s0"</span><span class="s0">> | ||
</</span><span class="s1">span</span><span class="s0">><</span><span class="s1">span </span><span class="s2">class=</span><span class="s3">"s2"</span><span class="s0">>android:layout_alignParentTop=</</span><span class="s1">span</span><span class="s0">><</span><span class="s1">span </span><span class="s2">class=</span><span class="s3">"s3"</span><span class="s0">></span><span class="s2">&quot;</span><span class="s0">true</span><span class="s2">&quot;</span><span class="s0"></</span><span class="s1">span</span><span class="s0">><</span><span class="s1">span </span><span class="s2">class=</span><span class="s3">"s0"</span><span class="s0">> | ||
</</span><span class="s1">span</span><span class="s0">><</span><span class="s1">span </span><span class="s2">class=</span><span class="s3">"s2"</span><span class="s0">>android:layout_alignParentStart=</</span><span class="s1">span</span><span class="s0">><</span><span class="s1">span </span><span class="s2">class=</span><span class="s3">"s3"</span><span class="s0">></span><span class="s2">&quot;</span><span class="s0">true</span><span class="s2">&quot; </span><span class="s0"></</span><span class="s1">span</span><span class="s0">><</span><span class="s1">span </span><span class="s2">class=</span><span class="s3">"s0"</span><span class="s0">>/</span><span class="s2">&gt;</span><span class="s0"> | ||
</span><span class="s2">&lt;</span><span class="s0">/</</span><span class="s1">span</span><span class="s0">></</span><span class="s1">pre</span><span class="s0">> | ||
</</span><span class="s1">body</span><span class="s0">> | ||
</</span><span class="s1">html</span><span class="s0">></span></pre> | ||
</body> | ||
</html> |
Oops, something went wrong.