Building Android Projects with Kotlin: Use Android SDK, Jetpack, Material Design, and JUnit to Build Android and JVM Apps That Are Secure and Modular
- Length: 462 pages
- Edition: 1
- Language: English
- Publisher: BPB Publications
- Publication Date: 2022-09-08
- ISBN-10: 9355510829
- ISBN-13: 9789355510822
- Sales Rank: #0 (See Top 100 Books)
Start your journey in this exciting Android app development world
Key Features
- Start your Kotlin adventure from the very fundamentals to sophisticated Android programming.
- Experience live coding of a video application, game design, and chat application.
- Explore the Android framework, app creation, testing, and publication to the Google Play store.
Description
As an ambitious Kotlin programmer or Android developer, are you frequently baffled by the options available to do a specific task? Or why a single solution is superior to the others for doing this Android task?
And most importantly, how can you do Kotlin programming employing this superior alternative?
The book ‘Building Android Projects with Kotlin’ teaches you all you need to know to create an incredible Android application. It describes the fundamentals of Android, its components, and their purposes. This book also emphasizes the significance of clean code, modular code writing, and architectural patterns. It teaches the reader how to analyze the performance of a layout, how to select the best picture format and the fundamentals of multiscreen application development.
This book discusses the creation of chat applications, video-sharing applications, and video games. The book will discuss best practices, libraries, functional requirement collecting, and feature development while constructing and explaining the functionalities of these applications. A range of topics like Android fundamentals, layout and image optimization, practical development tools, writing clean code, multiscreen app development, creating chat apps, video sharing applications, and games will be learned throughout this book.
What you will learn
- Develop the ability to write well-structured programs and modular codes.
- Workaround ExoPlayer, Notifications, RecyclerView, ToolBar, Unity, Jetpack components, etc.
- Explore and use Memory analyzer, Database analyzer, Logcat, and Layout Inspector.
- Examine the design patterns and performance of various layout designs and optimize accordingly.
- Create different designs for mobile and tablets in the same application.
Who this book is for
Aspiring Android developers, Kotlin programmers, and mobile developers would benefit from reading this book by improving their writing skills and fully utilizing the benefits of Kotlin in their application development. However, before reading this book, it would be beneficial to know Kotlin.
Cover Page Title Page Copyright Page Dedication Page About the Author About the Reviewers Acknowledgements Preface Errata Table of Contents 1. Creating Hello World Project Structure Objectives Creating a project from Android Studio Template Introducing templates Understanding files in the created project AndroidManifest.xml Java/ res/ build.gradle gradle-wrapper.properties gradle.properties proguard-rules.pro settings.gradle local.properties Creating a custom launcher icon Creating android virtual device (AVD) Running the Hello World application Important tools to develop, debug, and improve Android application Gradle Logcat Writing Logs Android Lint How to use Lint from Android Studio Using Lint from command/terminal Layout inspector and layout validator Using Layout Inspector Introducing Layout Validator Memory profiler Database Inspector Modifying table from Database Inspector Run query from Database Inspector and DAO Conclusion Points to remember Multiple Choice Questions Answers Questions Key Terms 2. Basics of Android Components Structure Objectives Basic components of Android Activity Service Broadcast receiver Static broadcast receivers Dynamic broadcast receivers Content provider Content resolver Introducing Fragment and View View Fragment Ways to show Fragments Lifecycle of an Activity Lifecycle of a Fragment Introducing dimensions and screen sizes Dimensions Handling of screen sizes Understanding different types of Layouts LinearLayout RelativeLayout TableLayout FrameLayout ConstraintLayout Choosing a better Layout for a design GPU overdraw Perfetto/Systrace Basics of material design Conclusion Points to remember Multiple Choice Questions Answers Questions Key Terms 3. Architecture Patterns Structure Objectives Understanding the need for an architecture pattern Understanding clean architecture Understanding SOLID principle Single responsibility principle Open-closed principle Liskov’s substitution principle Interface segregation principle Dependency inversion principle Understanding MVP Points to remember: Understanding MVP with code Advantages of using MVP Disadvantages of MVP Understanding MVVM Understanding MVVM with code Using databinding Advantages of using MVVM Disadvantages of MVVM MVVM with UseCases Conclusion Points to remember Multiple Choice Questions Answers Questions Key Terms 4. Developing Chat Application Structure Objectives Gathering functional requirement Creating user flow diagrams Introducing server Choosing better backend technology Introducing BaaS Introducing Firebase and its services Adding Firebase to application Step 1: Creating a Firebase project Step 2: Registering the Android application with the Firebase project Step 3: Adding Firebase configuration file to the Android project Step 4: Adding Firebase SDKs to the app Identifying and introducing Firebase services Introducing Firebase Authentication Introducing Firebase real-time database Introducing Cloud Storage Introducing FirebaseUI Introducing Android Jetpack Introducing RecyclerView Understanding important classes of RecyclerView Understanding how RecyclerView works Introducing TabLayout and ViewPager Understanding project structure of Chat app Writing code for the first screen Developing login screen Developing of chat home screen Developing contacts screen Developing chat screen Developing profile screen Using of notifications Conclusion Points to remember Multiple Choice Questions Answers Questions Key Terms 5. Publishing the Application Structure Objectives Introducing build variants Customizing build configurations Build types Product flavors Build variants Creating release Keystore Introducing R8 and Proguard Renaming identifiers Enabling of R8 Adding custom rules Creating a distributable file (release application) Creating a Google Play Store developer profile Pricing the application Understanding pricing strategy Free Freemium Paid Subscription plan Getting screenshots for the application Preparing Android app release checklist Uploading application to the Play Store Settings for paid applications Creating App at Google Play console Setting up your app Publishing/releasing the application Watching the number of installs Updating application at Play Store Conclusion Points to remember Multiple Choice Questions Answers Questions Key Terms 6. Developing Video Sharing Application Structure Objectives Gathering functional requirement Creating user flow diagram Introducing material UI components Introducing BottomNavigationView Introducing data storage in Android Introducing files Storage Access Framework (SAF) Preferences Database Room Creating CRUD for video sharing application Creating database Introducing repository pattern Introduction Package structure for repository pattern Implementing the repository pattern Introducing ExoPlayer Dependencies for ExoPlayer Understanding project structure Developing home screen Implementing the likes feature on clips Implementing the share feature for clips Implementing the comment feature on clips Developing add clips screen Conclusion Points to remember Multiple Choice Questions Answers Questions Key Terms 7. Introduction to Game Development Introduction Structure Objectives Introducing game engine Unity Unreal engine Buildbox Solar2D GameMaker Studio 2 Introducing Unity Installing Unity Creating Hello Unity project Introduction to Unity workspace Adding game objects to the project Adding texture to objects Adding Cube to the Scene Adding bricks image file Adding material object Applying bricks image to material object Applying bricks material object to the Cube Introducing important terms in Unity Introducing C# script Creating an Android build Conclusion Points to remember Multiple Choice Questions Answers Questions Key Terms 8. Development of the First Game Structure Objectives Introducing the project requirement Creating the project Adding game objects Adding floor Adding target objects Adding blocks Adding diamond Adding the ball Adding the bouncing effect to the ball Creating ball pin object Adding C# script Adding ball to the game dynamically Creating Prefab for ball Modifying script to use ball prefab Adding support for multiple screens Conclusion Points to remember Multiple Choice Questions Answers Questions Key Terms 9. Adding Support for Big Screens Structure Objectives Introducing resources in Android Understanding resources Introducing different qualifiers Qualifiers for drawables Qualifiers for layouts Qualifiers for values Working with resources Choosing the optimized image resource type Raster Image PNG WebP Vector image Vector drawables Designing and developing an app for Tablets Introducing tablet-specific dimensions and layout qualifiers Optimizing layouts for tablets Preparing checklist for Tablet app quality Developing apps for wearables and TV Creating project for wearables Creating an AVD for wearables Creating project for TV Declaring Leanback support Declaring touchscreen not required Creating an AVD for TV application Conclusion Points to remember Multiple Choice Questions Answers Questions Key Terms 10. Introducing Important Tools/Libs for Android Structure Objectives Introducing Jetpack compose Introducing Row Introducing Column Introducing Box Introducing ConstraintLayout Introducing App Bundles Understanding benefits of App bundles Introducing SafetyNet SafetyNet Attestation API SafetyNet Safe Browsing API SafetyNet reCAPTCHA API SafetyNet Verify Apps API Introducing Hilt Exploring dependency injection Understanding benefits of dependency injection solutions Adding dependency for Hilt Introducing annotations in Hilt Writing test cases with JUnit/Robolectric Introducing test cases Writing good test cases Writing local test cases using JUnit Introducing Espresso Introducing Robolectric Best practices to follow Third-party libraries you should know Choosing the right Android library List of a few libraries Conclusion Points to remember Multiple Choice Questions Answers Questions Key Terms Index
Donate to keep this site alive
1. Disable the AdBlock plugin. Otherwise, you may not get any links.
2. Solve the CAPTCHA.
3. Click download link.
4. Lead to download server to download.