目錄(252章)
倒序
- coverpage
- Title Page
- Copyright
- Expert Android Programming
- Credits
- About the Author
- About the Reviewer
- www.PacktPub.com
- Why subscribe?
- Customer Feedback
- Preface
- Introduction
- What this book covers
- What you need for this book
- Who this book is for
- Conventions
- Reader feedback
- Customer support
- Downloading the example code
- Downloading the color images of this book
- Errata
- Piracy
- Questions
- Understanding the Gradle System
- Stepping into the Gradle world
- Adding Gradle to your app
- Adding a new Gradle library
- Adding a Gradle identifier
- Adding as a module
- Summary
- Exploring Android Studio Developer Tools
- APK Analyzer
- Reducing the APK file size with APK Analyzer
- Understanding basic battery drain
- Batterystats and Battery Historian
- Memory Monitor
- Wondering what the various causes of memory increase are?
- Logcat
- Summary
- Leap into the Android Support Library
- The Android Support Library
- v4 Support Library
- v7 Support Library
- Multidex Support library
- v8 Support Library
- v13 Support Library
- Annotations Support Library
- Design Support Library
- Custom Tabs Support Library
- Summary
- Google Play Services
- The architecture
- Google Maps
- Summary
- Material Design
- Wireframing and tools to gather feedback
- Understanding the wireframing process (tangible and digital)
- Material UI for Android developers
- Building meaningful motions
- Floating Action Button (FAB)
- Implementing Search in Zomato
- Building the UX Design
- Understanding UX principles and how it's different from UI
- Summary
- SOLID Android Development and Its Design Principles
- Single Responsibility Principle
- Open-Closed Principle
- Liskov Substitution Principle
- Interface Segregation Principle
- Dependency Inversion Principle
- Summary
- Understanding MVC MVP MVVM and Clean Arch Patterns
- MVC (Model View Controller)
- MVP (Model View Presenter)
- MVVM
- Clean Architecture Pattern
- Understanding the layers of Clean Architecture
- Summary
- Decision Making
- How to begin
- Creational patterns
- Builder
- Dependency injection
- Singleton
- Structural patterns
- Adapter
- Facade
- Behavioral pattern
- Command
- Observer
- Model View Controller
- Model View Presenter
- Model View View-Model
- Summing up MVP and MVC
- Refactoring your app
- What are the advantages of refactoring?
- How is refactoring done?
- When should you refactor?
- What code needs to be refactored?
- Bloaters
- Object-orientation abusers
- Change preventers
- Dispensables
- Data class
- Couplers
- How do I refactor my code?
- Refactoring of methods
- Extract method
- Inline method
- Extract variable
- Inline temp
- Replace temp with query
- Split temporary variable
- Remove assignments to parameters
- Replace method with method object
- Substitute algorithm
- Summary
- Performance Matters
- Improving display performances
- Optimizing layouts
- Optimizing layout hierarchies
- Views on demand
- Define a ViewStub
- Improving scrolls and other elements in the app
- Using a background thread
- Holding view objects in a ViewHolder
- Understanding network requests computation and memory
- Collecting analyzing and optimizing the network and network traffic
- Collection network traffic information
- Taging network requests
- Configuring a network test build type
- Deploying the network test APK
- Runing the network traffic tool
- Analyzing Network Traffic Data
- Analyzing network traffic types
- Optimizing network use
- Batching and Job Schedulers
- JobInfo
- JobService
- JobScheduler
- Effective use of Extended Doze and Standby
- Understanding Doze
- Doze restrictions
- Adapting your app to Doze
- Understanding App Standby
- Testing with Doze and App Standby
- Threads and Pools
- Specifying the Code to Run on a Thread
- Creating a Thread Pool
- Running Code on a Thread Pool Thread
- Communicating with the UI Thread
- Memory optimization
- Treating Battery as part of user's experience
- Understanding what causes battery drain
- Why Battery Optimization is required?
- Strategies for battery optimization
- Effective consumption of battery in Zomato
- Monitoring changes in charging state
- Determining the current battery level
- Improving app with battery analyser
- Summary
- Building Restaurant finder
- App sections
- Splash Login and Signup (including Google and Facebook)
- The Signup Flow
- Discovery Screen
- Database
- Room
- Summary
- Backend Service
- Realtime Database
- How to write a database structure
- Add security to data structure
- Firebase Cloud Messaging
- Remote configuration
- Authentication
- Storage
- Summary
- App Quality Service
- Firebase Test Lab
- Summary
- Grow Up
- Dynamic links
- App indexing
- Admob
- Banner Ads
- Ad lifecycle event callbacks
- Discouraged banner implementations
- Recommended banner implementations
- Interstitial Ads
- Discouraged interstitial implementations
- Interstitial ad implementations
- Summary
- Testing
- Testing Mechanisms (Functionality Performance Security and Compatibility)
- Software Testing Life Cycle (STLC)
- Organizing for Software Testing
- Integration Testing
- Top-down integration testing
- Bottom-up integration testing
- Regression testing
- Smoke testing
- Acceptance Testing
- Alpha test
- Beta test
- Performance Testing
- Security Testing
- Compatibility Testing
- Automating User Interface Tests
- Testing UI for a single app
- Testing App using Espresso in Android Studio
- Setting up Espresso in Android Studio
- Create an Espresso Test Class
- Specifying a View Matcher
- Performing Actions
- Test your activities in isolation with Espresso Intents
- Testing WebViews with Espresso Web
- Verifying Results
- Testing UI for Multiple Apps
- Set Up the UI Automator
- Inspecting the UI on a device
- Ensuring your Activity is accessible
- Selector Specification
- Performing Actions
- Tools and Techniques: Espresso and Monkeyrunner
- Robotium
- The UI Animator
- Espresso
- Monkeyrunner
- Summary
- Preparing for Google Play
- Versioning Your App
- Generating a signed APK
- Preconfiguring to automatically Sign Your APK
- Android Instant Apps
- Alpha and Beta testing the App
- Preparing App Store Listing
- Device Catalog
- App signing
- Android Vitals
- User Feedback and Analytics
- Summary
- Understanding App Store Analytics for Optimization
- Keep an eye on Google Play policies
- Get your app title right
- Effectively using keywords in description
- Does your icon reflect the app theme?
- Are your app screenshots nailing it?
- Video can be a crowd puller
- Responding to reviews
- Are you LOCALizing?
- Summary 更新時間:2021-07-08 10:29:53
推薦閱讀
- 自己動手寫搜索引擎
- Learning Cython Programming
- LabVIEW2018中文版 虛擬儀器程序設計自學手冊
- Groovy for Domain:specific Languages(Second Edition)
- Mastering Yii
- C語言程序設計
- MongoDB權威指南(第3版)
- 移動界面(Web/App)Photoshop UI設計十全大補
- Procedural Content Generation for C++ Game Development
- C++20高級編程
- 搞定J2EE:Struts+Spring+Hibernate整合詳解與典型案例
- Spring技術內幕:深入解析Spring架構與設計原理(第2版)
- Delphi開發典型模塊大全(修訂版)
- Scratch從入門到精通
- Visual Basic語言程序設計基礎(第3版)
- Java Web動態網站開發(第2版·微課版)
- Unreal Engine Game Development Cookbook
- Visual C++ 開發從入門到精通
- Unity3D游戲開發標準教程
- HTML5+CSS3從入門到精通(微課精編版)
- 軟件開發踐行錄:ThoughtWorks中國區文集
- Node-RED物聯網應用開發技術詳解
- 大數據可視化編程和應用
- ArcGIS Pro 2.x Cookbook
- 從零開始學Python數據分析與挖掘
- Mastering Cloud Development using Microsoft Azure
- 機器學習實踐指南
- Kotlin從入門到進階實戰
- Scratch趣味編程:孩子的第一本編程啟蒙書
- Mastering Windows Server 2016