Developing for Multiple Mobile Platforms using Web Technologies in RadPHP XE2

March 19th, 2012

Over the past decade, the mobile landscape has changed rapidly. Smartphones have been dominating the market and mobile phones and tablets have become the go-to devices for consumers and business customers alike.

Platforms like iOS and Android have been showing double digit growth year over year, and mobile application development has presented a viable business opportunity for individual developers and enterprise companies alike.

When the iPhone was first introduced to consumers in 2007, it changed the mobile landscape forever. It provided a totally new, interactive mobile experience unlike anything the industry had ever seen before.

With the introduction of the iOS SDK for mobile application development in early 2008, and the launch of the Apple App Store a few months later, a new tech craze was born. Developers around the world could now create mobile app versions of their popular desktop applications. Hundreds of thousands of new applications were developed, allowing users to be productive, creative, and to have fun on their mobile devices. However, back then developers were limited to Apple’s tools and only able to code their applications in Objective-C using Xcode.

In 2011, Apple loosened its restrictions and allowed developers to build iOS apps and sell them through Apple’s App Store without using Objective-C and Apple’s development tools. This spurred new technologies, including mobile web app development frameworks that allow users to create applications for multiple mobile platforms including iOS, Android and BlackBerry using standard web programming languages such as HTML, Javascript and CSS.

Mobile applications built on web technologies can access device sensors and services using platforms such as PhoneGap and can be packaged as native applications. Several Javascript libraries have moved to the forefront of web and mobile web application development. One of those Javascript libraries is jQuery. JQuery has long been a popular JavaScript library for creating rich, interactive websites and web applications. However, since it was designed primarily for desktop browsers, it does not have many features specifically designed for building mobile web applications. JQuery Mobile is a project that addresses this shortfall. It is a framework built on top of JQuery that provides a range of user interface elements and features for you to use in your mobile applications.

PhoneGap is an application platform based on HTML5 that enables developers to build native mobile applications with access to device sensors and services such as the camera, GPS and accelerometer using the aforementioned web technologies. PhoneGap leverages web technologies that developers already know such as HTML, JavaScript and CSS and allows them to build applications with a native look and feel or a common UI across all the target platforms. Applications built with PhoneGap using web technologies can be distributed on the most popular mobile marketplaces, like the Apple App Store and Android Marketplace.

With the release of RadPHP XE2, Embarcadero introduced visual mobile web application development using jQueryMobile and PhoneGap making it easy to work with those technologies. RadPHP XE2 wraps JQuery Mobile features into mobile components, and provides a wizard for PhoneGap. You can create mobile web applications directly from RadPHP, use JQuery Mobile components to create touch-friendly interfaces and PhoneGap components to interact with mobile device hardware, and deploy your applications to Android, iOS and BlackBerry devices.

RadPHP XE2 for Mobile App Development allows you to:
Build mobile-optimized touch-friendly web applications for most mobile devices in the market using new jQuery Mobile components
Visual Mobile Designer to see how apps will look on the real device
Convert PHP apps into standalone mobile apps for iOS, Android and BlackBerry
Interact with the mobile device hardware, like GPS, accelerometer, camera, etc.
Expanded Zend Framework component set with email, barcode, Google, RSS and more
Give your mobile apps access to device features like cameras, accelerometers and GPS in an easy component-based way

RadPHP is unique for mobile app development since it’s the only visual Rapid Application Development (RAD) environment for PHP.  Other development environments may include a visual HTML designer but only RadPHP provides a visual designer that incorporates HTML and HTML templates with visual PHP components that you can drag and drop to create user interfaces and database connectivity. It also has an integrated component class library that lets developers quickly and visually create PHP web applications and integrate PHP open source packages, source code and components.

The RadPHP Visual Component Library (RPCL) adds mobile components and wizards to leverage your PHP skills to create native mobile optimized Android, iOS and BlackBerry applications.

RadPHP XE2 includes dozens of jQuery Mobile components.  The RadPHP IDE lets you quickly create mobile web apps directly from the IDE and use the jQuery Mobile components to create touch friendly interfaces.

You can simulate iOS (iPhone, iPad and iPod Touch), Android and BlackBerry devices and you can add new devices, such as Android tablets.

And the code is 100% pure PHP, JavaScript and HTML code!

After we create our Mobile app in the RadPHP IDE, we’ll use the Wizard for PhoneGap to generate all the files we need to create our native iOS, Android and/or BlackBerry mobile app based on web technologies.

With RadPHP, you build your mobile app once, and the Wizard for PhoneGap creates the native mobile apps for iOS, Android and BlackBerry.

Concluding Remarks
Embarcadero® RadPHP™ XE2 provides the fastest way to build Web, Facebook®, and mobile applications with the only visual PHP framework and IDE that supports Web and mobile deployment. RadPHP XE2 offers over 200 drag-and-drop components for building UIs, displaying and interacting with data and services such as Google maps and Facebook, along with integrated coding, debugging, performance profiling, and database connectivity. To learn more about RadPHP XE2, or to download a trial, visit www.embarcadero.com/radphp
The End

Performance Tuning Essentials for Java

December 11th, 2009

Manage application speed, scalability and reliability throughout the development process

In light of today’s compressed development cycles, multi-tiered application architectures and complex technologies, many organizations are challenged to get reliable yet scalable enterprise Java applications out the door in a timely manner. Devoting a small amount of energy throughout the development process to identify, address, and correct performance obstacles can lower the risks and costs associated with poorly performing applications over the life of the code.

Java performance tuning simply means optimizing your code for speed, reliability, scalability and maintainability. Producing truly scalable, lightning-fast Java SE and Java EE applications demands clarity of purpose and well-understood programming priorities. A major benefit of adopting regular performance tuning cycles is instantly seeing exactly which parts of your applications represent critical bottlenecks and which are behaving efficiently.

Performance Tuning: A Development Best Practice
A major strength of Java is its platform-independent byte-code approach and automatic handling of garbage collection. Unlike with C/C++, developers are able to focus on an application’s business requirements, and are largely free from platform considerations.

Experienced developers, however, do not focus exclusively on application functionality. The reality is that below this level of abstraction, hard limitations of memory and processing power exist, as do the patterns and constraints of garbage collection, thread scheduling, and a host of other considerations managed by the Java Virtual Machine (JVM) and the underlying operating system.

Successful developers - and productive development processes - incorporate regular use of performance analysis from the earliest stage of code creation throughout the development process, into QA testing, and beyond. Frequent, frontline checking and testing of small modules of code by the principal author is often the best way to assure that the Java applications produced will be fast, reliable, and scalable.

Seeing the Big Picture Means Digging Deep
The latest generation of Java application servers brings increased memory capacity and processing power to the party. However, even with this and the common practice of throwing more hardware at the problem can you ever really overcome truly flawed code? A single buggy line ripples forward and can cause application-wide bottlenecks or can mysteriously trigger disastrous crashes once an application is in production.

The developer’s tall challenge is to determine which part of a Java SE or Java EE application is causing a performance bottleneck or memory issue. The strength of Java and its various platforms is the high level of abstraction, re-use of objects, and insulation from layers of processing and system dependencies. But while encapsulation is great for shielding you from vast lower-level complexities, it also leaves few clues about where to focus your performance attention.

Tools are needed that extend your intuition and let you effortlessly see and understand how your Java application behaves when running. With the advent of highly abstracted, object-oriented languages such as Java, Stanford Computer Science Emeritus Professor Donald Knuth raised the concern that programmers are in danger of losing touch with the factors determining whether their code will run and scale well saying, "At first you try to ignore the details of what’s happening at the lower levels. But when you’re debugging, you can’t afford to be too compartmentalized. You can’t afford to only see things at the highest level of abstraction."

Performance Tools Allow You to Be Smart and Efficient About Optimizing
Knuth advises that developers need insight about what’s going on below the surface if their code is to be scalable, reliable, and fast.

A fundamental question is: "What are the priority performance issues for this module or application?" Tools specifically designed for Java performance tuning offer an ideal way to answer this question - and be assured that your code improvements are informed and efficient. Without tools to help prioritize key Java trouble areas, you are likely to spend a lot of time micro-optimizing unimportant sections at the expense of the crucial optimization issues that actually drive your application’s overall performance.

The goal ought to be for each member of the development team to be equipped with the tools to be smart about performance tuning each step of the way. Smart performance tuning will take place in the context of an application’s overall business requirements. Some tiny performance issues simply may not warrant improvement efforts. Other important optimizing trade-offs will arise only when components are brought together, at which point an understanding of the overall architecture will guide modifications.

Tuning your code for speed and performance iteratively, as you develop and bring modules of code together, is the best way to minimize frantic troubleshooting sessions at the end of a project - or worse, in production, where even small problems are transformed into costly, complex challenges. The tuned applications delivered to QA and to customers will instead be lightweight, stable, scalable, and screamingly fast.

Conclusion: Performance Tuning Is Crucial for Java
Conceiving, designing, and testing your approach against performance goals as you build means more than just avoiding under-performing applications or even crashes. By being appropriately alert to how your code performs throughout the development process, you avoid expensive, disruptive late-stage fixes. Fast, scalable, high-performance code is a design imperative from the beginning. It is also a serious, regularly exercised element of the development process for each front-line developer (not a specialized skill for an isolated performance team.

Embarcadero® J Optimizer™ 2009 tools make performance tuning easy

The 80:20 rule fits well for performance tuning. Eighty percent of an application’s performance problems are usually caused by no
more than 20 percent of the code. The pitfall that development teams fall into is that they delay the identification of key problem
areas until too late, leading to expensive and risky late-stage application redesign. Taking a proactive approach will preempt just
this type of rushed, endgame rework. Adopting tools such as J Optimizer 2009 allows everyone in a development team to become more conscious of—and more conscientious about—the application’s speed, scalability, and reliability throughout the development process.

As each routine or subsystem’s basic functionality is established, the module’s performance can be evaluated within the context of the applications overall business requirements. Clearly not every section of code will need to be labored over with equal intensity and certain key issues will emerge only as pieces of code are combined.

Whatever the situation, spotting and assessing the severity of issues throughout the development process avoids delays, problem escalations, and the kind of deep-rooted performance flaws that can sideline an entire project or create business disasters once an application is live with customers in a production environment.

The Embarcadero® J Optimizer performance tools let you keep a tight rein on code, regularly testing where design and compiled code meet hardware and Java virtual machine constraints. By focusing on priority problems, you will be rewarded with fast, reliable, and truly scalable J2SE and J2EE applications.  Feel free to try J Optimizer 2009 on your applications from this 30 day trial link:  http://embarcadero.com/products/j-optimizer

The End

InterBase 2009; Discover the best way to ensure secure data protection for your applications

December 11th, 2009

On Wednesday December 9, I gave a webinar discussing:

How do you ensure secure data protection for our applications using InterBase? We all want to develop secure, robust applications with resilient data protection and robust data management. And one of the best ways to achieve this is through solid software design and database technology that provides strong data encryption and automatic disaster recovery capabilities.

Topics covered were:

Structure applications to enhance data security and protection

Maximize data security with multiple forms of encryption, including “Over the Wire” network encryption, Strong Encryption (AES), Database and Column Level Encryption, Backup Encryption, and Long Password Support

Improve your application robustness with Log-based Journaling, Disaster Recovery and Automatic Crash Recovery capabilities,

Enhance your application performance with high-performance data management technology complete with Interbase’s integrated, graphical performance monitoring to diagnose and improve system performance.

The link for the webinar video is here:

http://video.embarcadero.com/InterBase/InterBase2009SecurityWebinar/InterBase2009SecurityWebinar.html

The link for the power point slides is here:  to be posted today.

The End

Enterprise Development

May 19th, 2008

Enterprise Java Beans (EJBs) are server-side components for modular construction of enterprise applications. JBuilder 2008’s Visual EJB Workbench allows you to create a visual model as you develop EJB applications. The Visual EJB Workbench provides a simplified RAD development experience for both novice and experienced J2EE developers.

Easily create EJBs and model relationships, security and OCL constraints. Changes to the source code, annotations, properties view and graphical view are always in sync through JBuilder’s patented LiveSource technology. JBuilder allows targeting and re-targeting app servers from all major commercial and OSS vendors including IBM, BEA, Sun, JBoss and Apache.

To see and learn more about JBuilder 2008’s Enterprise Development, you are welcome to attend this Webinar where you will learn:

· How to use the Visual EJB Workbench to build, test and deploy EJB 2.x and EJB 3.0 applications.

· EJB Modeling support.

· How to create EJB application containing session bean and entity beans, configuring servers and deploying.

· How to converting pure EJB 2.x projects to the new XDoclet annotated EJB project.

June 3, 2008 https://www1.gotomeeting.com/register/768482787
June 17, 2008 https://www1.gotomeeting.com/register/355438421
June 26, 2008 https://www1.gotomeeting.com/register/414709290
July 31, 2008 https://www1.gotomeeting.com/register/285612616
The End

Implementing Performance Management

May 19th, 2008

The iterative use of performance tools throughout the development process is critical for keeping performance and reliability problems under control as well as for producing fast, scalable J2EE and J2SE applications. Java technology is great for accelerating time-to-market; but, performance and reliability risks can become a serious challenge. Because Java technology provides a higher level of abstraction, it affords developers only a limited understanding of—and control over—the way their code is executed.

Three common real-life performance problems that you can encounter in Java applications are:

  • Excessive temporary object allocations
  • Memory leaks
  • Performance bottlenecks

Java developers and Quality Assurance need performance management tools to track and fix these problems before application goes into production.

JBuilder 2008 includes great Performance Management capabilities. To see and learn more about implementing performance management, you are welcome to attend this Webinar where you will learn:

How to use the complete set of performance management applications in JBuilder 2008:

o Profiler

o Code Coverage

o Thread Debugger

o Request Analyzer

How to use the JBuilder 2008 tools for measuring and optimizing the performance of Java programs:

o Progress Tracker

o Quality Analyzer

May 22, 2008 https://www1.gotomeeting.com/register/598962508
July 15, 2008 https://www1.gotomeeting.com/register/735748438
August 12, 2008 https://www1.gotomeeting.com/register/701467076
The End

Bad Behavior has blocked 1 access attempts in the last 7 days.