title
Android Development Tutorial

description
Get the Code & Transcript: http://goo.gl/T6Mls Best Android Development Book : http://goo.gl/uPhXFI The fix for the Android Fragment Error is here : https://www.youtube.com/watch?v=Cw_RP3IdtnQ In this first part of my Android Development Tutorial I'm going to describe almost every file and folder used to develop an Android app. I'll walk through every single file and explain how it is used. I'll explain the whole file system. We'll also make an app and as I create it, I'll explain every single step and what everything means. I have never seen anyone try to teach this much in one video. I hope you enjoy it.

detail
{'title': 'Android Development Tutorial', 'heatmap': [{'end': 1029.839, 'start': 1011.172, 'weight': 0.779}, {'end': 1355.807, 'start': 1337.976, 'weight': 0.701}, {'end': 1515.27, 'start': 1471.644, 'weight': 1}], 'summary': "This tutorial series covers creating an android app named 'my first app', explaining app folder structure, different layouts, user input fields, text sizing, and setting up a text view. it provides step-by-step instructions and emphasizes scalability and user interaction.", 'chapters': [{'end': 85.198, 'segs': [{'end': 38.749, 'src': 'embed', 'start': 0.189, 'weight': 0, 'content': [{'end': 4.692, 'text': 'Hello Internet and welcome to part one of my Android development tutorial.', 'start': 0.189, 'duration': 4.503}, {'end': 7.414, 'text': "I'm going to do something really crazy in this tutorial.", 'start': 4.912, 'duration': 2.502}, {'end': 15.8, 'text': 'I am going to cover a vast majority of all the different files and all the different things that go into creating an Android application.', 'start': 7.654, 'duration': 8.146}, {'end': 21.404, 'text': "And if you don't have the Android development kit installed, I have a link to that in the upper left hand corner.", 'start': 16.04, 'duration': 5.364}, {'end': 28.288, 'text': "And as this tutorial continues in the upper right hand corner, I'm going to have a playlist that's going to have all my Android tutorials available,", 'start': 21.664, 'duration': 6.624}, {'end': 29.029, 'text': 'all in one space.', 'start': 28.288, 'duration': 0.741}, {'end': 36.725, 'text': "And I'm going to cover this both in a presentation format as well as writing a ton of code and explaining everything all along the way.", 'start': 29.209, 'duration': 7.516}, {'end': 38.749, 'text': "So I have a lot to do, so let's get into it.", 'start': 36.885, 'duration': 1.864}], 'summary': 'Android development tutorial covering all files and aspects, with links and playlist available.', 'duration': 38.56, 'max_score': 0.189, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Z149x12sXsw/pics/Z149x12sXsw189.jpg'}, {'end': 77.81, 'src': 'embed', 'start': 54.112, 'weight': 1, 'content': [{'end': 60.617, 'text': 'And then in the window that pops up, you can come here under the Android folder and click on Android Application Project.', 'start': 54.112, 'duration': 6.505}, {'end': 64.661, 'text': "And since this is our first app, I'm going to call this My First App.", 'start': 60.818, 'duration': 3.843}, {'end': 69.161, 'text': "And then I'm going to come in here and give this a name so we don't have any conflicts.", 'start': 65.037, 'duration': 4.124}, {'end': 71.043, 'text': "I'm going to use my website, of course.", 'start': 69.221, 'duration': 1.822}, {'end': 73.346, 'text': 'Just like we did before, click Next.', 'start': 71.444, 'duration': 1.902}, {'end': 75.228, 'text': "Don't have to worry about any of this stuff.", 'start': 73.606, 'duration': 1.622}, {'end': 75.968, 'text': 'Click Next.', 'start': 75.268, 'duration': 0.7}, {'end': 77.049, 'text': "There's the icon.", 'start': 76.229, 'duration': 0.82}, {'end': 77.81, 'text': 'Click Next.', 'start': 77.089, 'duration': 0.721}], 'summary': "Creating an android application project, naming it 'my first app' and progressing through the setup process.", 'duration': 23.698, 'max_score': 54.112, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Z149x12sXsw/pics/Z149x12sXsw54112.jpg'}], 'start': 0.189, 'title': 'Android development tutorial', 'summary': "Covers creating an android app, installation of the android development kit, creating a new android project named 'my first app', and provides step-by-step instructions and a playlist for all android tutorials.", 'chapters': [{'end': 85.198, 'start': 0.189, 'title': 'Android development tutorial', 'summary': "Covers the creation of an android application, including the installation of the android development kit and the creation of a new android project named 'my first app', providing step-by-step instructions and highlighting the availability of a playlist for all android tutorials.", 'duration': 85.009, 'highlights': ['The tutorial covers a vast majority of all the different files and things involved in creating an Android application, aiming to provide comprehensive knowledge. It mentions the availability of a link to the Android development kit for installation.', "Step-by-step instructions are provided for creating a new Android project named 'My First App', ensuring there are no conflicts and guiding through the process, including naming and selecting options for the project setup.", 'The tutorial includes the availability of a playlist containing all the Android tutorials in one space, offering a comprehensive learning resource for Android development.', 'The presenter mentions covering the tutorial in both a presentation format and by writing code, ensuring a varied and in-depth learning experience for the audience.']}], 'duration': 85.009, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Z149x12sXsw/pics/Z149x12sXsw189.jpg', 'highlights': ['The tutorial includes the availability of a playlist containing all the Android tutorials in one space, offering a comprehensive learning resource for Android development.', "Step-by-step instructions are provided for creating a new Android project named 'My First App', ensuring there are no conflicts and guiding through the process, including naming and selecting options for the project setup.", 'The tutorial covers a vast majority of all the different files and things involved in creating an Android application, aiming to provide comprehensive knowledge.', 'The presenter mentions covering the tutorial in both a presentation format and by writing code, ensuring a varied and in-depth learning experience for the audience.']}, {'end': 395.28, 'segs': [{'end': 201.487, 'src': 'embed', 'start': 144.34, 'weight': 0, 'content': [{'end': 152.865, 'text': 'so that we will be able to develop using the newest API while remaining completely backwards compatible to all the other previous versions of Android.', 'start': 144.34, 'duration': 8.525}, {'end': 156.767, 'text': "Then you're going to have your resources folder which I'm going to cover on the next couple slides.", 'start': 153.065, 'duration': 3.702}, {'end': 158.708, 'text': 'Jump over into bin.', 'start': 157.087, 'duration': 1.621}, {'end': 162.19, 'text': "It's going to contain all the files that are going to be built by the ADT.", 'start': 159.028, 'duration': 3.162}, {'end': 170.032, 'text': "And it's also going to contain your actual app stored as an APK file or an application package file.", 'start': 162.91, 'duration': 7.122}, {'end': 174.433, 'text': 'And this is just the file format used for installing apps on the Android OS.', 'start': 170.352, 'duration': 4.081}, {'end': 179.655, 'text': "Then we're going to get into the androidmanifest.xml file, which I'm going to cover in great detail.", 'start': 174.754, 'duration': 4.901}, {'end': 183.657, 'text': "It's going to have the app name, the app icon, activities that you're going to use,", 'start': 179.975, 'duration': 3.682}, {'end': 186.919, 'text': 'permissions that are going to be required for your app to properly operate.', 'start': 183.657, 'duration': 3.262}, {'end': 191.542, 'text': "And at some point inside of it, you're going to see Android intent action main.", 'start': 187.199, 'duration': 4.343}, {'end': 194.183, 'text': 'This is going to define the entry point for your app.', 'start': 191.782, 'duration': 2.401}, {'end': 196.445, 'text': 'And that brings us into the resources folder.', 'start': 194.383, 'duration': 2.062}, {'end': 201.487, 'text': 'All these drawable folders that you see here drawable, drawable, drawable, drawable.', 'start': 196.785, 'duration': 4.702}], 'summary': 'Develop using newest api, backward compatible. apk file for app installation. androidmanifest.xml details.', 'duration': 57.147, 'max_score': 144.34, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Z149x12sXsw/pics/Z149x12sXsw144340.jpg'}, {'end': 315.388, 'src': 'embed', 'start': 287.359, 'weight': 3, 'content': [{'end': 290.72, 'text': "And we're going to be working a lot with linear layout in this tutorial, so you're going to get to see that.", 'start': 287.359, 'duration': 3.361}, {'end': 296.841, 'text': "Then you're going to have the grid layout, which lays out elements in a series of rows and columns, and it's very flexible.", 'start': 291, 'duration': 5.841}, {'end': 299.261, 'text': 'And if you plan on using a grid layout,', 'start': 297.161, 'duration': 2.1}, {'end': 304.702, 'text': 'of course you should set it up using the layout editor rather than going in and trying to mess around with XML.', 'start': 299.261, 'duration': 5.441}, {'end': 311.605, 'text': 'And then finally, we have the absolute simplest layout manager, which is the frame layout and what it basically does.', 'start': 304.862, 'duration': 6.743}, {'end': 315.388, 'text': 'as new elements are added, they are basically just stacked on top of each other.', 'start': 311.605, 'duration': 3.783}], 'summary': 'This tutorial covers linear, grid, and frame layout managers for android ui design.', 'duration': 28.029, 'max_score': 287.359, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Z149x12sXsw/pics/Z149x12sXsw287359.jpg'}, {'end': 347.579, 'src': 'embed', 'start': 319.511, 'weight': 4, 'content': [{'end': 326.537, 'text': "activity main opens up whenever you first create your app, and I'm just going to step through here briefly and cover some of these different things.", 'start': 319.511, 'duration': 7.026}, {'end': 334.083, 'text': "you're going to notice inside of android we're going to use things like match parent for things like width and things like height,", 'start': 326.537, 'duration': 7.546}, {'end': 337.946, 'text': 'and also wrap content down here for width and height,', 'start': 334.083, 'duration': 3.863}, {'end': 347.579, 'text': "And we're going to do that rather than using exact pixels so that our interface is able to easily scale up to fit the different types of devices we want to run in our app.", 'start': 338.326, 'duration': 9.253}], 'summary': 'In the activity main, android uses match parent and wrap content for width and height instead of exact pixels to easily scale up interfaces for different devices.', 'duration': 28.068, 'max_score': 319.511, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Z149x12sXsw/pics/Z149x12sXsw319511.jpg'}], 'start': 85.638, 'title': 'Android app structure and layouts', 'summary': 'Explains the android app folder structure, covering folders like source, gen, assets, libs, resources, bin, and manifest, and different types of layouts including relative, linear, grid, and frame layouts. it emphasizes the importance of using match parent and wrap content to ensure scalability.', 'chapters': [{'end': 251.687, 'start': 85.638, 'title': 'Android app folder structure', 'summary': 'Explains the android app folder structure, covering folders like source, gen, assets, libs, resources, bin, and manifest, highlighting the purpose of each folder and its contents, including auto-generated files, android support version, apk file, androidmanifest.xml, drawable folders, and layout folder.', 'duration': 166.049, 'highlights': ['The bin folder contains the files built by the ADT and stores the actual app as an APK file. Contains files built by the ADT and stores the app as an APK file.', 'The androidmanifest.xml file includes app name, app icon, activities, permissions, and defines the entry point for the app. androidmanifest.xml includes app details, activities, permissions, and defines the entry point.', "The resources folder includes drawable folders storing images for different resolutions and layout folder containing files defining the app's user interface. resources folder includes drawable folders for images and layout folder for UI definition.", 'The gen folder contains two auto-generated files providing access to different resources, while the libs folder has the Android support version v4 API. gen folder contains auto-generated files and libs folder has Android support version v4 API.', 'The source folder holds all class files for the app, and the assets folder contains various data files like text files and databases needed for the application. source folder holds class files, and assets folder contains data files for the application.']}, {'end': 395.28, 'start': 251.987, 'title': 'Android layouts and sizing', 'summary': 'Covers different types of layouts including relative, linear, grid, and frame layouts, emphasizing the importance of using match parent and wrap content to ensure the interface is able to easily scale up to fit different types of devices.', 'duration': 143.293, 'highlights': ['The tutorial covers different types of layouts including relative, linear, grid, and frame layouts, with an emphasis on working with linear layout.', 'The importance of using match parent and wrap content instead of exact pixels for width and height is highlighted to ensure the interface can easily scale up to fit different types of devices.', 'The usage of DP (Density Independent Pixels) is explained, with an emphasis on proper scaling of the app regardless of the type of device it runs on.']}], 'duration': 309.642, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Z149x12sXsw/pics/Z149x12sXsw85638.jpg', 'highlights': ['The bin folder contains the files built by the ADT and stores the actual app as an APK file.', 'The androidmanifest.xml file includes app name, app icon, activities, permissions, and defines the entry point for the app.', "The resources folder includes drawable folders storing images for different resolutions and layout folder containing files defining the app's user interface.", 'The tutorial covers different types of layouts including relative, linear, grid, and frame layouts, with an emphasis on working with linear layout.', 'The importance of using match parent and wrap content instead of exact pixels for width and height is highlighted to ensure the interface can easily scale up to fit different types of devices.']}, {'end': 692.462, 'segs': [{'end': 445.562, 'src': 'embed', 'start': 409.645, 'weight': 1, 'content': [{'end': 418.67, 'text': "And all of the strings that you're going to be storing to use inside of your app are going to be both stored as well as retrieved from strings.xml.", 'start': 409.645, 'duration': 9.025}, {'end': 426.134, 'text': "And you're going to be able to define some simple formatting inside of here, such as if you want the text to be bold or italic or underlined,", 'start': 418.91, 'duration': 7.224}, {'end': 427.135, 'text': 'just like HTML.', 'start': 426.134, 'duration': 1.001}, {'end': 433.458, 'text': "And the only thing you really have to worry about whenever you're defining these strings is to make sure that you escape all your apostrophes,", 'start': 427.255, 'duration': 6.203}, {'end': 434.419, 'text': 'as well as your quotes.', 'start': 433.458, 'duration': 0.961}, {'end': 439.26, 'text': "And you can see right here exactly how we're going to define one of our strings.", 'start': 434.859, 'duration': 4.401}, {'end': 445.562, 'text': "We're going to give it a name, app name, and then here the actual string that we're going to store inside of it.", 'start': 439.3, 'duration': 6.262}], 'summary': 'Strings for app stored and retrieved from strings.xml, formatting like html, escape apostrophes and quotes.', 'duration': 35.917, 'max_score': 409.645, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Z149x12sXsw/pics/Z149x12sXsw409645.jpg'}, {'end': 564.636, 'src': 'embed', 'start': 539.146, 'weight': 0, 'content': [{'end': 545.25, 'text': "And we're going to be able to define that by setting a value to orientation to either horizontal or vertical.", 'start': 539.146, 'duration': 6.104}, {'end': 550.513, 'text': 'And whenever you define this, you are of course going to have to define a root view.', 'start': 545.672, 'duration': 4.841}, {'end': 553.974, 'text': "And this root view is going to fill the device's screen.", 'start': 550.893, 'duration': 3.081}, {'end': 557.035, 'text': "So we're going to go linear layout, which is what we want to use.", 'start': 554.094, 'duration': 2.941}, {'end': 559.015, 'text': "And I actually shouldn't have deleted all that.", 'start': 557.335, 'duration': 1.68}, {'end': 559.955, 'text': "Let's just go back here.", 'start': 559.035, 'duration': 0.92}, {'end': 561.156, 'text': 'Getting a little bit crazy.', 'start': 560.195, 'duration': 0.961}, {'end': 564.636, 'text': "And let's just get rid of relative and go linear layout.", 'start': 561.556, 'duration': 3.08}], 'summary': 'Defining orientation and root view for linear layout.', 'duration': 25.49, 'max_score': 539.146, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Z149x12sXsw/pics/Z149x12sXsw539146.jpg'}, {'end': 655.723, 'src': 'embed', 'start': 627.406, 'weight': 2, 'content': [{'end': 630.588, 'text': "The user's going to be able to type in some sort of information into that,", 'start': 627.406, 'duration': 3.182}, {'end': 637.491, 'text': "hit a button and then that's going to trigger an intent or an action to cause another activity to be started.", 'start': 630.588, 'duration': 6.903}, {'end': 642.994, 'text': "When that other activity is going to be very simple, it's just going to print out on the screen whatever the user typed into this text field.", 'start': 637.571, 'duration': 5.423}, {'end': 649.797, 'text': "But to type something into the text field, we're going to actually have to create a text field for them to be able to type into.", 'start': 643.154, 'duration': 6.643}, {'end': 655.723, 'text': "And to create an editable text field, we're going to have to use a tag called EditText.", 'start': 650.117, 'duration': 5.606}], 'summary': 'The user can trigger an action to start another activity, involving creating an edittext field for user input.', 'duration': 28.317, 'max_score': 627.406, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Z149x12sXsw/pics/Z149x12sXsw627406.jpg'}], 'start': 395.28, 'title': 'Android app development basics', 'summary': 'Covers the basics of android app development, including the use of linear layout, defining orientation, and creating editable text fields for user input.', 'chapters': [{'end': 502.885, 'start': 395.28, 'title': 'Android app development: xml files overview', 'summary': 'Provides an overview of the strings.xml and styles.xml files used in android app development, emphasizing the storage and retrieval of strings, as well as the definition of ui formatting.', 'duration': 107.605, 'highlights': ['The strings.xml file is used to store and retrieve strings for the app, allowing simple formatting such as bold, italic, and underlined text, similar to HTML.', "In strings.xml, it's important to escape apostrophes and quotes when defining strings to avoid issues.", 'The chapter also briefly introduces the styles.xml file, which defines UI formatting properties like height, padding, font color, and background color, similar to cascading style sheets.']}, {'end': 692.462, 'start': 502.885, 'title': 'Android app development basics', 'summary': 'Covers the basics of android app development, including the use of linear layout, defining orientation, and creating editable text fields for user input.', 'duration': 189.577, 'highlights': ["The root view in the linear layout fills the device's screen, ensuring proper scaling to different devices.", 'The tutorial aims to provide the option for an editable text field for user input, triggering an intent to start another activity.', 'The use of linear layout and defining orientation (horizontal or vertical) to align elements in one direction is explained.', 'Creating an editable text field using the tag EditText and giving it an ID to reference it in the app code is demonstrated.']}], 'duration': 297.182, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Z149x12sXsw/pics/Z149x12sXsw395280.jpg', 'highlights': ["The root view in the linear layout fills the device's screen, ensuring proper scaling to different devices.", 'The strings.xml file is used to store and retrieve strings for the app, allowing simple formatting such as bold, italic, and underlined text, similar to HTML.', 'The tutorial aims to provide the option for an editable text field for user input, triggering an intent to start another activity.', "In strings.xml, it's important to escape apostrophes and quotes when defining strings to avoid issues.", 'The use of linear layout and defining orientation (horizontal or vertical) to align elements in one direction is explained.']}, {'end': 1122.993, 'segs': [{'end': 803.616, 'src': 'embed', 'start': 747.548, 'weight': 0, 'content': [{'end': 757.272, 'text': 'we gave it a value of one it would actually give two-thirds of all the space to our text field and then the one-third remaining part to our button.', 'start': 747.548, 'duration': 9.724}, {'end': 758.353, 'text': "but if we don't do anything,", 'start': 757.272, 'duration': 1.081}, {'end': 764.796, 'text': "it's gonna make the button as big as it needs to be and give the text field all the other different space that is available to it.", 'start': 758.353, 'duration': 6.443}, {'end': 774.804, 'text': "Now, a very important thing to do whenever you are trying to get a text field to size itself properly is whenever we're going to be defining the width for our element.", 'start': 765.036, 'duration': 9.768}, {'end': 779.848, 'text': "we're going to go layout width and we want to make sure that we set this to 0 dpi,", 'start': 774.804, 'duration': 5.044}, {'end': 783.612, 'text': "and the reason why we're doing that is layout width is going to be irrelevant,", 'start': 779.848, 'duration': 3.764}, {'end': 790.858, 'text': "because the weight has already been set and weight is going to fill all the space that's available for this little text box we're going to put in here.", 'start': 783.612, 'duration': 7.246}, {'end': 793.972, 'text': "So then we're going to go android layout, height.", 'start': 791.078, 'duration': 2.894}, {'end': 799.594, 'text': 'And in this situation because we want everything to just properly scale height-wise,', 'start': 794.471, 'duration': 5.123}, {'end': 803.616, 'text': "regardless of the type of device it's using we're going to just type in wrap content.", 'start': 799.594, 'duration': 4.022}], 'summary': 'Setting a weight of 1 allocates two-thirds of space to text field and one-third to button, ensuring proper scaling.', 'duration': 56.068, 'max_score': 747.548, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Z149x12sXsw/pics/Z149x12sXsw747548.jpg'}, {'end': 886.993, 'src': 'embed', 'start': 860.814, 'weight': 1, 'content': [{'end': 867.079, 'text': "is that it's going to be really great to store all the text for your user interface all in one area.", 'start': 860.814, 'duration': 6.265}, {'end': 874.624, 'text': "and the reason why that's going to be great is you're going to be able to manage all of the text across your entire app all in one place.", 'start': 867.379, 'duration': 7.245}, {'end': 880.308, 'text': "so that's just a couple different reasons why we're actually using strings.xml, and that's the reason why android set up that way.", 'start': 874.624, 'duration': 5.684}, {'end': 884.231, 'text': "and of course, there's no reason why you can't come in here and change any of these things.", 'start': 880.308, 'duration': 3.923}, {'end': 886.993, 'text': 'so i can put first app inside of here.', 'start': 884.231, 'duration': 2.762}], 'summary': 'Storing text in strings.xml allows managing app text in one place, enhancing efficiency and flexibility.', 'duration': 26.179, 'max_score': 860.814, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Z149x12sXsw/pics/Z149x12sXsw860814.jpg'}, {'end': 1038.342, 'src': 'heatmap', 'start': 1011.172, 'weight': 3, 'content': [{'end': 1014.694, 'text': 'And I can call this my first app.message.', 'start': 1011.172, 'duration': 3.522}, {'end': 1019.375, 'text': "This is just going to be the message we're going to be passing from one activity that we have into another activity.", 'start': 1015.134, 'duration': 4.241}, {'end': 1023.097, 'text': "And I'm not going to worry that much about all these different methods right here.", 'start': 1019.795, 'duration': 3.302}, {'end': 1029.839, 'text': 'But I am going to have to define the method that we talked about in activity main called sendMessage.', 'start': 1023.377, 'duration': 6.462}, {'end': 1034.861, 'text': 'this needs to be created so that it can be called whenever our buttons clicked.', 'start': 1030.479, 'duration': 4.382}, {'end': 1038.342, 'text': "so we're going to bounce down inside of here and create send message.", 'start': 1034.861, 'duration': 3.481}], 'summary': 'Creating a method called sendmessage for passing messages between activities in the first app.', 'duration': 27.17, 'max_score': 1011.172, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Z149x12sXsw/pics/Z149x12sXsw1011172.jpg'}], 'start': 692.722, 'title': 'Android layout and strings', 'summary': 'Explains proper sizing of text fields in android layouts using weight values, and how to manage text for user interface and pass messages between activities using strings.xml and intents.', 'chapters': [{'end': 803.616, 'start': 692.722, 'title': 'Android layout: text field sizing', 'summary': 'Explains how to properly size a text field within an android layout by using weight values, where a weight of 1 takes up all the available space and a weight of 2 takes up two-thirds of the space.', 'duration': 110.894, 'highlights': ['By setting a weight value of 1 for the text field, it will take up all the space not occupied by the button, while a weight of 2 for the text field and 1 for the button will allocate two-thirds of the space to the text field and one-third to the button.', 'Setting the layout width to 0 dpi ensures that the weight, which has been set, fills all the available space for the text field.', 'Defining the height as wrap content allows for proper scaling regardless of the device being used.']}, {'end': 1122.993, 'start': 803.756, 'title': 'Android strings and intents', 'summary': 'Covers the usage of strings.xml to manage text for user interface and the creation of intents to start another activity, emphasizing the benefits of centralizing text and the use of intent to pass messages between activities.', 'duration': 319.237, 'highlights': ['The chapter covers the usage of strings.xml to manage text for user interface Strings.xml is used to store all the text for the user interface in one area, allowing the management of all text across the entire app.', 'The creation of intents to start another activity Intents are objects used to start another activity, allowing the passing of messages from one activity to another.', 'Emphasizing the benefits of centralizing text and the use of intent to pass messages between activities Centralizing text in strings.xml enables scalability and translatability of the app, while intents facilitate passing messages between different activities.']}], 'duration': 430.271, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Z149x12sXsw/pics/Z149x12sXsw692722.jpg', 'highlights': ['Setting a weight value of 1 for the text field allocates all space not occupied by the button.', 'Usage of strings.xml centralizes text for user interface management.', 'Defining the height as wrap content allows for proper scaling on any device.', 'Intents are used to pass messages between activities for seamless communication.', 'Strings.xml stores all text for the user interface, enabling centralized management.', 'Setting layout width to 0 dpi ensures the weight fills all available space for the text field.']}, {'end': 1556.304, 'segs': [{'end': 1169.765, 'src': 'embed', 'start': 1143.127, 'weight': 0, 'content': [{'end': 1147.33, 'text': 'And send message is called whenever the button is pressed inside of our application.', 'start': 1143.127, 'duration': 4.203}, {'end': 1154.695, 'text': 'Now whenever all this goes down what we want to do is create a text area and place it in our new view for our new activity.', 'start': 1147.59, 'duration': 7.105}, {'end': 1161.799, 'text': "And to do that, we're going to go edit text, edit text, and this is going to give us another error because we need to import another library.", 'start': 1155.016, 'duration': 6.783}, {'end': 1163.5, 'text': 'of course, because we always have to do that.', 'start': 1161.799, 'duration': 1.701}, {'end': 1165.121, 'text': "So let's just do that right away.", 'start': 1163.78, 'duration': 1.341}, {'end': 1169.765, 'text': "And then there's going to have to be a cast to type edit text set up here.", 'start': 1165.382, 'duration': 4.383}], 'summary': 'Creating a text area in a new activity with button press.', 'duration': 26.638, 'max_score': 1143.127, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Z149x12sXsw/pics/Z149x12sXsw1143127.jpg'}, {'end': 1255.799, 'src': 'embed', 'start': 1211.833, 'weight': 1, 'content': [{'end': 1214.595, 'text': "So all I'm doing is passing this information around.", 'start': 1211.833, 'duration': 2.762}, {'end': 1229.365, 'text': "So then I want to be able to store that text inside of my text area and to do that I'm going to create a new string called message and then I'm going to go edit text and I want to get the text from that field that they entered in there previously.", 'start': 1214.795, 'duration': 14.57}, {'end': 1232.663, 'text': "And we're going to go to string, of course, to convert it into a string.", 'start': 1229.721, 'duration': 2.942}, {'end': 1235.245, 'text': "So all I'm doing is this guy over here.", 'start': 1232.903, 'duration': 2.342}, {'end': 1244.231, 'text': "wherever I had the area for the user to be able to enter in a message inside of it, I'm getting the ID from the r.java file right,", 'start': 1235.245, 'duration': 8.986}, {'end': 1245.592, 'text': 'like I have right here.', 'start': 1244.231, 'duration': 1.361}, {'end': 1249.094, 'text': "I'm storing it inside of this edit text field.", 'start': 1245.612, 'duration': 3.482}, {'end': 1255.799, 'text': "And then here what I'm doing is extracting that text from the edit text field and storing it in a string called message.", 'start': 1249.395, 'duration': 6.404}], 'summary': 'Creating a new string called message to store text from a text area.', 'duration': 43.966, 'max_score': 1211.833, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Z149x12sXsw/pics/Z149x12sXsw1211833.jpg'}, {'end': 1309.135, 'src': 'embed', 'start': 1282.148, 'weight': 3, 'content': [{'end': 1286.833, 'text': "So that's what's going to be sent over there whenever display message activity is needed.", 'start': 1282.148, 'duration': 4.685}, {'end': 1290.357, 'text': 'And then all I need to do to get display message activity.', 'start': 1287.093, 'duration': 3.264}, {'end': 1298.846, 'text': 'this activity to show up on the screen is to go, start activity and pass along the intent or intention to start that activity,', 'start': 1290.357, 'duration': 8.489}, {'end': 1301.83, 'text': 'along with the message that is going to be used inside of it.', 'start': 1298.846, 'duration': 2.984}, {'end': 1307.014, 'text': 'So now what I need to do is actually create display message activity, this class.', 'start': 1302.25, 'duration': 4.764}, {'end': 1309.135, 'text': 'Everything else here is perfectly fine.', 'start': 1307.374, 'duration': 1.761}], 'summary': 'To display a message activity, start the activity and pass along the intent with the message.', 'duration': 26.987, 'max_score': 1282.148, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Z149x12sXsw/pics/Z149x12sXsw1282148.jpg'}, {'end': 1364.189, 'src': 'heatmap', 'start': 1337.976, 'weight': 0.701, 'content': [{'end': 1342.839, 'text': 'The activity name, of course, is going to be display message activity, just like we did before.', 'start': 1337.976, 'duration': 4.863}, {'end': 1345.461, 'text': 'We can let this all be set exactly the same.', 'start': 1343.079, 'duration': 2.382}, {'end': 1350.084, 'text': 'We could come in here and type in something like my message for the title of this guy.', 'start': 1345.821, 'duration': 4.263}, {'end': 1355.807, 'text': "Under hierarchical parent, because I don't want to have any conflicts, I'm going to select that guy.", 'start': 1350.404, 'duration': 5.403}, {'end': 1358.689, 'text': "And then I'm just going to go to this guy right here, my first app.", 'start': 1355.827, 'duration': 2.862}, {'end': 1360.046, 'text': 'And double click on that.', 'start': 1359.065, 'duration': 0.981}, {'end': 1360.746, 'text': 'So there we go.', 'start': 1360.146, 'duration': 0.6}, {'end': 1361.647, 'text': 'Got that all set up.', 'start': 1360.806, 'duration': 0.841}, {'end': 1364.189, 'text': "Navigation type, I'm going to let that set for none.", 'start': 1361.927, 'duration': 2.262}], 'summary': 'Configuring display message activity with hierarchical parent and navigation type set to none.', 'duration': 26.213, 'max_score': 1337.976, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Z149x12sXsw/pics/Z149x12sXsw1337976.jpg'}, {'end': 1418.775, 'src': 'embed', 'start': 1393.149, 'weight': 4, 'content': [{'end': 1399.194, 'text': 'Okay, so now with onCreate, this guy is going to be called whenever our new activity is created.', 'start': 1393.149, 'duration': 6.045}, {'end': 1405.659, 'text': 'So what are we going to need to do? Well, we want to actually get the message that was entered into the app.', 'start': 1399.534, 'duration': 6.125}, {'end': 1408.881, 'text': "So we're going to have to create a new intent like this.", 'start': 1405.699, 'duration': 3.182}, {'end': 1411.003, 'text': "And we're going to store inside of it.", 'start': 1409.462, 'duration': 1.541}, {'end': 1418.775, 'text': 'the information that was passed over into this, which was actually the intention to call display message activity and, of course,', 'start': 1411.448, 'duration': 7.327}], 'summary': 'The oncreate method is called when a new activity is created, and it involves creating and storing a new intent to get the entered message.', 'duration': 25.626, 'max_score': 1393.149, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Z149x12sXsw/pics/Z149x12sXsw1393149.jpg'}, {'end': 1499.42, 'src': 'embed', 'start': 1471.644, 'weight': 5, 'content': [{'end': 1479.155, 'text': 'Then, inside of this new text area, if I want to set my text inside of it with the message that was passed over from the intent,', 'start': 1471.644, 'duration': 7.511}, {'end': 1483.053, 'text': "I'm just going to go text view dot, set text and pass the message inside of it.", 'start': 1479.551, 'duration': 3.502}, {'end': 1490.796, 'text': 'Now that I have that all set up, now I have to come in here to set content view and just put my little text view on the Android device.', 'start': 1483.213, 'duration': 7.583}, {'end': 1499.42, 'text': "And if I save that, the neat thing that's going to happen is display message is actually going to be created automatically for me inside of here.", 'start': 1491.296, 'duration': 8.124}], 'summary': 'Setting up text view to display passed message in android app.', 'duration': 27.776, 'max_score': 1471.644, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Z149x12sXsw/pics/Z149x12sXsw1471644.jpg'}, {'end': 1515.27, 'src': 'heatmap', 'start': 1471.644, 'weight': 1, 'content': [{'end': 1479.155, 'text': 'Then, inside of this new text area, if I want to set my text inside of it with the message that was passed over from the intent,', 'start': 1471.644, 'duration': 7.511}, {'end': 1483.053, 'text': "I'm just going to go text view dot, set text and pass the message inside of it.", 'start': 1479.551, 'duration': 3.502}, {'end': 1490.796, 'text': 'Now that I have that all set up, now I have to come in here to set content view and just put my little text view on the Android device.', 'start': 1483.213, 'duration': 7.583}, {'end': 1499.42, 'text': "And if I save that, the neat thing that's going to happen is display message is actually going to be created automatically for me inside of here.", 'start': 1491.296, 'duration': 8.124}, {'end': 1500.821, 'text': 'And I can run this guy.', 'start': 1499.76, 'duration': 1.061}, {'end': 1509.426, 'text': 'so just come up inside of here hit run configurations, make sure i have my first app main activity selected here with launch.', 'start': 1501.161, 'duration': 8.265}, {'end': 1515.27, 'text': 'go over into target, make sure i have automatically pick compatible device and have my emulator all set up, like i did before,', 'start': 1509.426, 'duration': 5.844}], 'summary': 'Setting up text view and running display message on android device.', 'duration': 43.626, 'max_score': 1471.644, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Z149x12sXsw/pics/Z149x12sXsw1471644.jpg'}], 'start': 1123.173, 'title': 'Android app development', 'summary': "Covers creating a text area, a 'display message activity', and setting up a text view in an android app. it includes obtaining ids, storing user-entered text, passing extra information using intents, setting text size, and running the app.", 'chapters': [{'end': 1255.799, 'start': 1123.173, 'title': 'Creating text area in android app', 'summary': 'Covers creating a text area in an android app by accessing and manipulating the edit text field, obtaining the id from the r.java file, and storing user-entered text in a string.', 'duration': 132.626, 'highlights': ['Access and manipulate the edit text field to create a text area in the new activity view.', 'Obtain the ID for the edit message field from the r.java file to associate it with the text area.', 'Store user-entered text in a string called message by extracting it from the edit text field.']}, {'end': 1448.372, 'start': 1256.049, 'title': 'Creating display message activity', 'summary': "Explains the process of creating a new activity, 'display message activity', and passing extra information using intents, with a focus on code implementation and activity setup.", 'duration': 192.323, 'highlights': ["The process of creating a new activity, 'Display Message Activity', is explained, emphasizing the use of intents and passing extra information. The chapter walks through the process of creating a new activity, 'Display Message Activity', and passing extra information using intents.", "The code implementation for retrieving the message entered into the app is detailed, involving the creation of a new intent and storing the passed information. The code implementation for retrieving the message entered into the app involves creating a new intent and storing the passed information, with the use of 'intent.getStringExtra' to retrieve the message.", "Explanation of the 'onCreate' method and its role in handling the creation of the new activity is provided, focusing on retrieving the stored message. The 'onCreate' method's role in handling the creation of the new activity and retrieving the stored message is explained, highlighting the use of intent to retrieve the string message."]}, {'end': 1556.304, 'start': 1448.372, 'title': 'Android text view setup', 'summary': 'Explains the process of setting up a new text view in an android app to display a message passed over from an intent, including setting text size and running the app, and mentions the intention to create a variety of android apps in the future.', 'duration': 107.932, 'highlights': ['The chapter explains the process of setting up a new text view in an Android app to display a message passed over from an intent, including setting text size and running the app.', 'The tutorial mentions the intention to create a variety of Android apps in the future and to explain everything along the way.', 'The chapter describes the process of running the app on an Android emulator and entering a message to be displayed on the screen.']}], 'duration': 433.131, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/Z149x12sXsw/pics/Z149x12sXsw1123173.jpg', 'highlights': ['Access and manipulate the edit text field to create a text area in the new activity view.', 'Obtain the ID for the edit message field from the r.java file to associate it with the text area.', 'Store user-entered text in a string called message by extracting it from the edit text field.', "The process of creating a new activity, 'Display Message Activity', is explained, emphasizing the use of intents and passing extra information.", "The code implementation for retrieving the message entered into the app involves creating a new intent and storing the passed information, with the use of 'intent.getStringExtra' to retrieve the message.", 'The chapter explains the process of setting up a new text view in an Android app to display a message passed over from an intent, including setting text size and running the app.']}], 'highlights': ['The tutorial covers a vast majority of all the different files and things involved in creating an Android application, aiming to provide comprehensive knowledge.', 'The tutorial includes the availability of a playlist containing all the Android tutorials in one space, offering a comprehensive learning resource for Android development.', 'The presenter mentions covering the tutorial in both a presentation format and by writing code, ensuring a varied and in-depth learning experience for the audience.', "Step-by-step instructions are provided for creating a new Android project named 'My First App', ensuring there are no conflicts and guiding through the process, including naming and selecting options for the project setup.", 'The androidmanifest.xml file includes app name, app icon, activities, permissions, and defines the entry point for the app.', 'The bin folder contains the files built by the ADT and stores the actual app as an APK file.', "The resources folder includes drawable folders storing images for different resolutions and layout folder containing files defining the app's user interface.", 'The tutorial covers different types of layouts including relative, linear, grid, and frame layouts, with an emphasis on working with linear layout.', 'The importance of using match parent and wrap content instead of exact pixels for width and height is highlighted to ensure the interface can easily scale up to fit different types of devices.', "The root view in the linear layout fills the device's screen, ensuring proper scaling to different devices.", 'The strings.xml file is used to store and retrieve strings for the app, allowing simple formatting such as bold, italic, and underlined text, similar to HTML.', 'The tutorial aims to provide the option for an editable text field for user input, triggering an intent to start another activity.', "In strings.xml, it's important to escape apostrophes and quotes when defining strings to avoid issues.", 'The use of linear layout and defining orientation (horizontal or vertical) to align elements in one direction is explained.', 'Setting a weight value of 1 for the text field allocates all space not occupied by the button.', 'Usage of strings.xml centralizes text for user interface management.', 'Defining the height as wrap content allows for proper scaling on any device.', 'Intents are used to pass messages between activities for seamless communication.', 'Strings.xml stores all text for the user interface, enabling centralized management.', 'Setting layout width to 0 dpi ensures the weight fills all available space for the text field.', 'Access and manipulate the edit text field to create a text area in the new activity view.', 'Obtain the ID for the edit message field from the r.java file to associate it with the text area.', 'Store user-entered text in a string called message by extracting it from the edit text field.', "The process of creating a new activity, 'Display Message Activity', is explained, emphasizing the use of intents and passing extra information.", "The code implementation for retrieving the message entered into the app involves creating a new intent and storing the passed information, with the use of 'intent.getStringExtra' to retrieve the message.", 'The chapter explains the process of setting up a new text view in an Android app to display a message passed over from an intent, including setting text size and running the app.']}