Skip to content

Commit 6defab7

Browse files
author
pocha
committed
removed the links from the bottom of the lesson of module. Also updated module lessons with images etc
1 parent d0ffb39 commit 6defab7

8 files changed

+62
-36
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11

22
If you have followed our Twitter App tutorial so far, you have built a login screen with some basic Layouts & View elements. You have added a login button but it does nothing.
33

4-
We have created this module specifically for introducing **Click Listener** . As an Android developer, this is the first time you will be dealing with a *callback code snippet* which gets executed when a button is clicked.
4+
We are going to add click functionality to the button. We have created this module specifically for introducing **Click Listener** . As an Android developer, this is the first time you will be dealing with a *callback code snippet* which gets executed when a button is clicked.

twitter-client-tutorial/_iteration_1_plan.html.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11

2-
The first thing an app developer does before he starts building the app is to plan it. The first step is to create [mockups](http://en.wikipedia.org/wiki/Mockup#Software_Engineering). But since we are replicating an already existing app, we know how it will look. So we can bypass the mockup creation step.
2+
The first thing an app developer does before he starts building an app is to plan it. The first step is to create [mockups](http://en.wikipedia.org/wiki/Mockup#Software_Engineering). But since we are replicating an already existing app, we know how it will look. So we can bypass the mockup creation step.
33

44
A good way to start is by building the app skeleton (just the user interface).
55

6-
* The first time you open a Twitter app, it shows the login screen. So we will build the interface for it first.
6+
* The first time you open a Twitter app, it shows the login screen. So we will build its interface first.
77
<br/>
88
<%= image_tag "twitter-client/login-screenshot.png", alt: "Login Screenshot", title: "Login Screenshot" %>
99
<p class="ac">Login Interface Screenshot</p>

twitter-client-tutorial/_lesson_group_async_task.html.md

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,3 @@ Reading and writing tweets from/to file are time consuming tasks. These tasks sh
44
You can always compensate the delay by showing a loading/spinner but that is a bad app design. It is like blocking the app flow. The code should be written in such a way that blocking the app flow should only happen if the user's next action is dependent on the current action. The choice is personal on the part of programmer too. For example - fetching tweets from network should never be blocking but publishing a tweet can be. The user might or might not want to wait till the tweet is published. If you do not block the app, you should show some kind of notification which will let user come back to the publish tweet screen to publish it again.
55

66
In the last lesson, we were reading & writing the tweets in the same thread. In this lesson, we are going to move the steps of creating new tweets & overwriting the cached file into a separate thread using **AsyncTask**.
7-
<div>
8-
<% lessons_of_mod_5 = AppLesson.find_all_by_module_number(5) %>
9-
<% count = 1 %>
10-
<% lessons_of_mod_5.each do |l| %>
11-
<%= count %> .
12-
<% count = count + 1 %>
13-
<%= link_to l.lesson.title, app_tutorial_lesson_with_token_path(@app_name, l.lesson_module.lesson.token, l.lesson.token) %>
14-
<br/>
15-
<% end %>
16-
</div>
17-

twitter-client-tutorial/_lesson_group_tweets_from_file.html.md

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,3 @@ In a mobile app, use of local storage is important for a better user experience.
77

88
For now, we are simply going to write the dummy tweets that we created in the previous lesson into a local cache file, read from it & show it to the user when the Tweet List screen loads. In subsequent lesson, we are going to move the writing tweets part to an asynchronous process using AsyncTask.
99

10-
<div>
11-
<% lessons_of_mod_4 = AppLesson.find_all_by_module_number(4) %>
12-
<% count = 1 %>
13-
<% lessons_of_mod_4.each do |l| %>
14-
<%= count %> .
15-
<% count = count + 1 %>
16-
<%= link_to l.lesson.title, app_tutorial_lesson_with_token_path(@app_name, l.lesson_module.lesson.token, l.lesson.token) %>
17-
<br/>
18-
<% end %>
19-
</div>
Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,26 @@
11

2-
In the last module, you implemented **Click Listener** on login page button which simply updated the button text. In this module, you will learn how you can load a new Activity on the button click using **Intents**.
2+
In the last module, you implemented **Click Listener** on login page button which simply updated the button text. Ideally it should open a new screen which provides us the list of tweets.
33

4-
Intent is the Android way of launching new Activity & even external apps from inside of an Android app. Usually Intent gets fired from button click, List item click or some other user interaction mechanism.
4+
In this module, we are going to create a new Activity - TweetListActivity (we are going to build it too). This Activity will get launched when the user clicks the login button.
5+
6+
<div style="clear:both"></div>
7+
<div class="row-fluid">
8+
<div class="span5">
9+
<div class="ac vertical-align-me">
10+
<%= image_tag "twitter-client/login-screenshot.png", alt: "Login Screenshot", title: "Login Screenshot" %>
11+
</div>
12+
</div>
13+
<div class="span2">
14+
<div class="ac vertical-align-me">
15+
<%= image_tag "twitter-client/from-to.jpg", alt: "Login Screenshot", title: "Login Screenshot" %>
16+
</div>
17+
</div>
18+
<div class="span5">
19+
<div class="ac vertical-align-me">
20+
<%= image_tag "twitter-client/twitter-list-screenshot.png", alt: "Twitter Detail Screenshot", title: "Twitter Detail Screenshot" %>
21+
</div>
22+
</div>
23+
</div>
24+
25+
26+
You will learn how you can load a new Activity on the button click using **Intents**. Intent is the Android way of launching new Activity & even external apps from inside of an Android app. Usually Intent gets fired from button click, List item click or some other user interaction mechanism.

twitter-client-tutorial/_tweet_list_dynamic_data.html.md

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,3 @@ In this module, we will add the feature - each tweet item should have different
55

66
> In this module, you will going to learn how to access & modify data in a ListView & best practices of storing data using models in Java/Android.
77
8-
<div>
9-
<% lessons_of_mod_3 = AppLesson.find_all_by_module_number(3) %>
10-
<% count = 1 %>
11-
<% lessons_of_mod_3.each do |l| %>
12-
<%= count %> .
13-
<% count = count + 1 %>
14-
<%= link_to l.lesson.title, app_tutorial_lesson_with_token_path(@app_name, l.lesson_module.lesson.token, l.lesson.token) %>
15-
<br/>
16-
<% end %>
17-
</div>

twitter-client-tutorial/_tweetdetail_intent_module.html.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,19 @@ So far you have built a basic Tweet List screen. You also learnt how to attach C
44
Ideally, we would need to send the tweet data from the TweetList Activity to TweetDetail Activity but ince this is our first iteration of building the Twitter app & we are not doing any data handling, there will not be any data passed over Intent.
55

66
This module is similar to our earlier module where you learnt how to load the TweetList Activity from Login Activity on login button click.
7+
8+
<div style="clear:both"></div>
9+
10+
<div class="row-fluid">
11+
<div class="span5">
12+
<%= image_tag "twitter-client/twitter-list-screenshot.png", alt: "Twitter Detail Screenshot", title: "Twitter Detail Screenshot" %>
13+
</div>
14+
<div class="span2">
15+
<div class="vertical-align-me">
16+
<%= image_tag "twitter-client/from-to.jpg", alt: "Twitter Detail Screenshot", title: "Twitter Detail Screenshot" %>
17+
</div>
18+
</div>
19+
<div class="span5">
20+
<%= image_tag "twitter-client/twitter-details-screenshot.png", alt: "Twitter Detail Screenshot", title: "Twitter Detail Screenshot" %>
21+
</div>
22+
</div>

twitter-client-tutorial/_tweetlist_listview_module.html.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,22 @@
22
So far, you learnt to work with relatively simple View elements like LinearLayout, RelativeLayout, TextView, EditText & Button. For building the list of tweet screen, we would be needing a different View element called **ListView**.
33

44
ListView is one of the most difficult concepts to understand for an Android newbie. To make it easier/simpler, we will be building TweetList screen in multiple iterations. The first iteration will be to build a very simple but useless ListView with just one TextView for each item. We are then going to refine it to come closer to our requirement.
5+
6+
Below are the images as to how the ListView would be built in the lessons of this module.
7+
8+
<div style="clear:both"></div>
9+
<div class="row-fluid">
10+
<div class="span5">
11+
<%= image_tag "twitter-client/twitter_list_view.png", alt: "Login screen Layout overview", title: "Login screen Layout overview" %>
12+
</div>
13+
<div class="span2">
14+
<div class="vertical-align-me">
15+
<%= image_tag "twitter-client/from-to.jpg", alt: "Login screen Layout overview", title: "Login screen Layout overview" %>
16+
</div>
17+
</div>
18+
<div class="span5">
19+
<div class="vertical-align-me">
20+
<%= image_tag "twitter-client/final_tweet_list.png", alt: "Login screen Layout overview", title: "Login screen Layout overview" %>
21+
</div>
22+
</div>
23+
</div>

0 commit comments

Comments
 (0)