Skip to main content
main-content

Über dieses Buch

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 presents a broader, eagle-eye picture of a complete Java ME application and what writing one involves. From there, the book presents, explains, and helps 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 are also presented.

The book assumes 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

Inhaltsverzeichnis

Frontmatter

Chapter 1. Getting Started

Abstract
After briefly examining Java ME’s position in the modern mobile world, we selected an idea for our own Pro Java ME project and we discussed how nontechnical issues, such as the project’s goals and source of revenue, affect its technical side.
Ovidiu Iliescu

Chapter 2. A Java ME Framework

Abstract
We have looked at how the framework for our Pro Java ME application functions. In the process, we have also learned how to properly structure and write Java ME application frameworks in general, as well as some of the pitfalls associated with this.
Ovidiu Iliescu

Chapter 3. Defining Our Data

Abstract
We have defined the global data types and entities for our project. In the process, we have also examined how to model data for Java ME applications and how choosing the right model for your data can bring significant improvements to an application.
Ovidiu Iliescu

Chapter 4. The Networking Module

Abstract
We have implemented the networking module for our Twitter client application. In the process, we have learned how to properly structure a networking module, what pitfalls to look out for, how to convert asynchronous requests to synchronous ones, and how to use buffering to improve our application’s efficiency. We have also examined a few best practices related to Java ME networking and discussed their impact on real-life applications.
Ovidiu Iliescu

Chapter 5. The Persistence Module

Abstract
We have learned how to look at Java ME persistence and what the primary means of implementing it are.
Ovidiu Iliescu

Chapter 6. The UI Module

Abstract
In this chapter, we have learned how to write a Java ME UI module from scratch. Some of the important aspects and the associated theoretical concepts we have discussed are clipping rectangles, nested widgets, and properly handling user interaction events such as keypresses.
Ovidiu Iliescu

Chapter 7. The Localization Module

Abstract
We have discussed what localization is and how localization support can be added to a Java ME application. In the process, we have examined some of the more important aspects of a good localization implementation, such as processing and optimizing localization files on the desktop before loading them onto the mobile device, implementing support for parameter-specific keys, and implementing advanced localization features, such as locale-based formatting for objects (dates, currency, etc.).
Ovidiu Iliescu

Chapter 8. Putting It All Together

Abstract
In this chapter, we have used together all the modules we have written so far. We have created a functional (although not exactly feature-complete) Twitter client. We have looked at how to separate our application into UI-related code (forms) and businessrelated code (controllers), how events can be used to form a complete application flow, from startup to shutdown, how they can be used to bridge the gap between the frontend UI and the back-end application code, how to implement features like auto-login and localization in real-life scenarios, and more. We have also looked at what can be done to improve the application further. A list of “to do” exercises has been suggested to the reader with respect to this.
Ovidiu Iliescu

Chapter 9. Device Fragmentation

Abstract
In this chapter, we have looked at device fragmentation. We have looked at where it comes from, into what subtypes it can be split, and how to approach each type of fragmentation issue.
Ovidiu Iliescu

Chapter 10. Optimizing Your Code

Abstract
In this chapter, we have looked at how we can optimize our Java ME applications by improving both the code and the algorithms behind the code. We have examined the most commonly used code optimization techniques and how they improve application speed: optimizing math operation, fast code path switching, optimizing loops, and more. We have also examined how algorithm performance is measured and how to optimize the most commonly used algorithm operations: sorting, searching, and recursion.
Ovidiu Iliescu

Chapter 11. Adding Fine Touches and User Interaction Improvements

Abstract
In this chapter, you have examined the most important fine touches and user interaction improvements that you can add to your application. You have learned how they improve the user’s overall experience, while boosting your image and the image of your products at the same time. In the next chapter, you will take a look at Java ME application testing.
Ovidiu Iliescu

Chapter 12. Java ME Application Testing

Abstract
In this chapter, you have examined the core areas of Java ME application testing: gathering debug information, unit testing, visual debugging, and thoroughly testing the application in all possible usage scenarios and environments. In the process, you have looked at some of the interesting aspects that Java ME brings to the table (for example, buggy JVMs, varied form factors, and different usage scenarios for different devices) and how these aspects should be covered in the testing process. In the next chapter, you will cover advanced Java ME graphics and learn a few graphical techniques useful for Java ME development.
Ovidiu Iliescu

Chapter 13. Advanced Java ME Graphics

Abstract
In this chapter, you have examined a couple of advanced Java ME graphical techniques: image blending, image masking, image resizing, and image rotating. You have looked at the principles behind these techniques and at their various use cases. In the next chapter, you will look at a few Java ME development stories and examine the moral behind them.
Ovidiu Iliescu

Chapter 14. The Proper Java ME Mindset

Abstract
In this chapter, we have looked at the most important mindset rules for Java ME development, and we have demonstrated them with a couple of real-life examples.
Ovidiu Iliescu

Chapter 15. Java ME and the Future

Abstract
In this chapter, you have examined what the future holds for the Java ME platform in terms of hardware, software, target markets, and more. You have also looked at some of the reasons that Java ME might “die” in the foreseeable future.
Ovidiu Iliescu

Chapter 16. Final Words

Abstract
At this point, we have reached the end of our journey into the world of Pro Java ME applications. As such, I would like to use these last few pages to recap what we have discussed in the book up to this point, and provide you with a few markers related to what you should do next in order to deepen your knowledge of the platform.
Ovidiu Iliescu

Backmatter

Weitere Informationen

Premium Partner

    Bildnachweise