You are previewing Pro Java ME Apps.
O'Reilly logo
Pro Java ME Apps

Book Description

Pro Java ME Apps gives you, the developer, the know-how required for writing sophisticated Java ME applications and for taking advantage of this huge potential market. Java ME is the largest mobile software platform in the world, supported by over 80% of all phones. You'll cover what Java ME is and how it compares to other mobile software platforms, how to properly design and structure Java ME applications, how to think like an experienced Java ME developer, what common problems and pitfalls you may run into, how to optimize your code, and many other key topics.

Unlike other Java ME books out there, which only teach the reader the basics of Java ME by way of a few simple examples, this book will present a broader, eagle-eye picture of a complete Java ME application and what writing one involves. From there, the book will present, explain, and help you to implement all the essential aspects of Java ME development, from the user interface to client-server communication. As this unfolds, the decisions and reasoning behind the code will also be presented.

The book will assume that the reader is already familiar with Java ME and Java applications in general.

  • Based on and geared towards real-life Java ME scenarios.

  • Guides the reader through the entire process of developing a high-quality Java ME application.

  • Explains the decisions made at each step, gives advice and examples of good practices vs. bad practices.

Table of Contents

  1. Title Page
  2. Dedication
  3. Contents at a Glance
  4. Contents
  5. About the Author
  6. About the Technical Reviewer
  7. Acknowledgments
  8. Introduction
    1. What is covered in this book
    2. What you will need for this book
    3. Let the fun begin
  9. Chapter 1: Getting Started
    1. Java ME, Smartphones, and Feature Phones
    2. Creating a Java ME Application
    3. Writing Flexible Java ME Applications
    4. Summary
  10. Chapter 2: A Java ME Framework
    1. The Importance of Using a Framework
    2. Why a Custom Framework for Each Application?
    3. Defining the Framework's Structure
    4. Basic Object Types
    5. Common Objects
    6. Core Objects and Classes
    7. A Simple Test Application
    8. Summary
  11. Chapter 3: Defining Our Data
    1. Why Implement the Model Interface?
    2. Making Data Types Immutable
    3. Defining the Tweet Data Type
    4. Defining the TwitterUser Data Type
    5. Defining the TwitterServer Entity
    6. Defining the UserCredentials Data Type
    7. Defining the TweetFilter Data Type
    8. Defining the Timeline Entity
    9. Choosing Intelligent Representations for Your Data
    10. Summary
  12. Chapter 4: The Networking Module
    1. Setting Up and Configuring the Library
    2. Writing Our TwitterServer Implementation
    3. Best Practices for Java ME Networking
    4. Summary
  13. Chapter 5: The Persistence Module
    1. Understanding Java ME Persistence Options
    2. Designing the Persistence Module
    3. Implementing the Core Architecture
    4. Writing Persistence Helpers
    5. Using the Module in a Real-Life Scenario
    6. Taking the Module Further
    7. Summary
  14. Chapter 6: The UI Module
    1. Why Create a Custom UI Module?
    2. Understanding the Basics of Creating a UI Module
    3. Implementing Basic Widget Support
    4. Implementing Concrete Widgets
    5. Testing the UI Module
    6. Implementing UIs on Touch-Only Devices
    7. Final Words About the UI Module
    8. Summary
  15. Chapter 7: The Localization Module
    1. Understanding the Features of a Good Localization Module
    2. Understanding Native Java ME Localization
    3. Adding Custom Localization Support to a Java ME Application
    4. Testing the Localization Module
    5. Implementing Advanced Localization Features
    6. Summary
  16. Chapter 8: Putting It All Together
    1. Jump-Starting the Application
    2. Implementing the FlowController
    3. Implementing the TweetsController
    4. Implementing the WelcomeScreenController and the WelcomeForm
    5. Implementing the MainForm and MainScreenController
    6. Implementing the SettingsScreenController and the SettingsForm
    7. Implementing the EVT Class
    8. Improving the Application
    9. Summary
  17. Chapter 9: Device Fragmentation
    1. Hardware Fragmentation
    2. Capabilities Fragmentation
    3. API Inconsistencies
    4. Porting Frameworks
    5. Cross-Development and Porting Tools
    6. Summary
  18. Chapter 10: Optimizing Your Code
    1. A Crash Course in Optimizing Code
    2. Code Optimization Techniques
    3. Avoiding High-Level Language Features
    4. Algorithm Optimization Techniques
    5. Summary
  19. Chapter 11: Adding Fine Touches and User Interaction Improvements
    1. Adding Fine Touches to Your Application
    2. Improving User Interaction
    3. Deciding Which Fine Touches and Improvements to Implement
    4. Summary
  20. Chapter 12: Java ME Application Testing
    1. Gathering Debug Information
    2. Performing Unit Testing
    3. Performing Visual Debugging
    4. Performing Battery Testing
    5. Testing the Application in a Variety of Scenarios
    6. Testing Performance Improvement and Optimization Techniques
    7. Summary
  21. Chapter 13: Advanced Java ME Graphics
    1. Using Pre-rendered Graphics
    2. Using Image Masking
    3. Using Image Blending Techniques
    4. Rotating Images
    5. Resizing Images
    6. Implementing Other Graphical Effects
    7. Combining Multiple Effects Together
    8. Summary
  22. Chapter 14: The Proper Java ME Mindset
    1. Java ME Is Only As Powerful As the Devices It Runs On
    2. Best Practices for Optimizing Your Application
    3. Sticking to Your Priorities
    4. Thinking Outside the Box Is Important
    5. Keeping Things Simple
    6. Standardizing the User Experience
    7. Planning for the Worst-Case Scenario
    8. Determining Your Application’s Limits
    9. Summary
  23. Chapter 15: Java ME and the Future
    1. Java ME Hardware Evolution
    2. The Evolution of the Java ME API
    3. The Evolution of the Java ME Mindset and Development Philosophy
    4. Java ME’s Target Market
    5. Java ME and Other Platforms
    6. Java ME Application Types
    7. Java ME Innovation
    8. Java ME’s Death
    9. Summary
  24. Chapter 16: Final Words
    1. What we have covered in the book
    2. What to research next
    3. In closing
  25. Index