Working at Sencha—Come Join Us

At Sencha, our mission is to create the frameworks and tools that empower developers to create amazing cross-browser app experiences that execute with precision and performance. We have worked hard to assemble a team of brilliant people from around the world, and we periodically bring everyone together for company events.

I recently celebrated my fourth anniversary as a Sencha employee, and I am amazed at how much Sencha has grown during that time. As a remote employee, I don’t often have the opportunity to socialize in person with my friends and colleagues. Although I travel to Sencha HQ (Redwood City, CA) a few times a year for meetings, our company outings have a huge impact on our culture and remind me why I love working here!

In January, Sencha held its annual Worldwide Sales kickoff meeting in the San Francisco Bay Area. The event brought together our Sales, Marketing, Training and Professional Services teams to discuss various corporate and product updates — and although we spent a week in meetings and strategy sessions, we also arranged for a lot of downtime and fun activities.

Sencha Takes Over San Francisco

One of the days we were in town, we stopped our meetings at noon and boarded trolleys for a sightseeing tour of San Francisco. For those of us who work remotely, the trip was our first opportunity to see many parts of the city.

We toured various parts of San Francisco: AT&T Park, Fort Baker and North Beach. We also drove through Chinatown and Pier 39 — and of course, we stopped for some photo ops by the Golden Gate Bridge. Our tour guide was both informative and hilarious as he kept shouting out “points of interest” like the house where Robin Williams filmed the movie Mrs. Doubtfire. We ended up at the North Beach Restaurant for an incredible Italian dinner.

Next Up: SenchaCon 2015

The next major company event for us will be SenchaCon 2015, our annual developer conference hosted in the heart of Silicon Valley. Most of the Sencha team will be in town, and we are really looking forward to socializing with our community and sharing our technical knowledge.

SenchaCon will feature three days of technical sessions and training on JavaScript, HTML5 and Java development in addition to some epic parties. Tickets are still available — find out why I’m excited about SenchaCon and even get a 20% discount code. We hope you’ll join us!

Join Our Team

Sencha currently has a number of open positions across the organization that we need to fill — and we want you to apply.

Come work in a collaborative environment with some of the best people in the industry as we explore and enhance the possibilities of today’s web and mobile technologies. We are building some truly amazing products and need developers with a variety of skills (not just JavaScript).

Sencha offers a fantastic benefits package in combination with competitive salary — and best of all, many positions allow you to work remotely! Come talk to us about joining Sencha.

20120912 Company Update No Comments   Read more

Key Trends in Building Enterprise Applications with HTML5

Unless you’ve been living under a rock or on another planet, you have undoubtedly heard of HTML5 and how it has simply revolutionized web application development. Over the past four years, it seems like just about every tech conference had someone ranting about all the cutting-edge things you can do with web technology – but very often these presentations talk about the shiny new parts of HTML5 in the context of “Try this with a nightly build of Chrome” or “One day you might actually be able to use this in a real app.”

For those of us working on enterprise applications, the allure of these presentations may be exciting but they’re certainly not useful in our day-to-day development. The reality is that the enterprise cannot expect users to have a cutting-edge browser (usually they’re supporting legacy browsers), and more often than not, the coolest tech demos simply aren’t relevant or meaningful for business applications.

Trends for 2015 and Beyond

Please join us on Tuesday, March 3, 2015 as we cover:

  • the current state of HTML5 as it relates to enterprise application development
  • some emerging trends within the industry
  • a few key problems that enterprise applications currently face, and how Sencha tries to eliminate many of these issues

Why do enterprise companies care about HTML5?

Clearly HTML5 offers a great deal of technological improvement over Web 2.0 and promises a continued evolution of standards and features — but HTML5 also means something beyond just technology and code to the enterprise. Managers and executives have bought into the idea of HTML5 as a buzzword because it is essentially the Holy Grail for enterprise software development:

Applications with rich user experiences can be delivered to any device using the Web, and they’re all powered using the same standardized technology.

HTML5 enables the enterprise to develop applications consistently while also increasing the productivity of their developers.

This is a gigantic “win” for the enterprise, because they typically support many different applications across their organization – and these applications will likely remain in production for as long as five to ten years. That’s a significant amount of legacy code, and yet because HTML5 has reached W3C standardization, the enterprise is assured that their code will continue to work for many years into the future.

Strategy Analytics Developer Survey

Here’s an opportunity to shape the applications industry, win one of three tablets, and receive a report highlighting the survey findings that will give you the low down on industry trends. The survey will take 15 minutes to complete, and you’ll be entered for a chance to win one of 3 prizes: Apple iPad Air 2 32GB, Google Nexus 9, Amazon Fire HDX 8.9.


Take the survey now.

seminar-in-seoul.jpg No Comments   Read more

Best Practices for Building HTML5 Applications

JavaScript has enjoyed a long and storied history since its creation in 1995. As a prototype-based scripting language, JavaScript quickly became useful as a mechanism to implement dynamic logic and interactivity on web sites — and combined with the latest features of HTML5 and CSS3, JavaScript has evolved into a required technology for delivering powerful web applications.

But web development also has a frustrating past, and for many software developers JavaScript and CSS remain tricky to learn. Older Internet browsers delivered wide variations in the ECMAScript and CSS specifications which led to many problems creating applications compatible across browsers and devices. Rather than trying to implement this cross-browser code themselves, developers often turned to JavaScript libraries like Prototype (2005), jQuery (2006) and Ext JS (2007).

Over the years, Sencha has evolved with the needs of enterprise web applications, and our customers look to us for direction and leadership as these web technologies continue to advance.

Defining Best Practices

HTML5 has proven itself to be a reliable and powerful platform for building robust applications across a variety of devices. However, as web technology continues to evolve at a rapid pace, it can be difficult for developers to stay on top of the latest tools and techniques.

Our customers frequently ask our advice on the subject of “best practices” — and while we’ve covered many of these concepts in past webinars and at SenchaCon, we wanted to start 2015 by releasing a more robust collection of recommendations for building enterprise web applications with JavaScript and HTML5.

A lot of this advice is used internally at Sencha and certainly applies to building applications with Sencha frameworks — but this JavaScript style guide can also help teams building applications with any framework, or even just vanilla JavaScript. These recommendations are based on our own experiences, as well as direct interaction with our enterprise customers.

The overall goal for this document is to help you evaluate what Sencha considers to be the important aspects of “quality” code, and ultimately create your own readable, maintainable and scalable JavaScript projects. These best practices stand as a baseline from which your teams can implement your own strategy for building a high quality JavaScript codebase. We encourage you to fork our GitHub repo!

Hear More from the Experts

To go a step further, Sencha has organized a panel of experts to discuss a variety of topics in our January webinar titled Best Practices for Building HTML5 Applications. Join thought leaders from Sencha, Netflix, Salesforce, Apigee, Swarm Online and Modus Create as we examine:

  • Strategies for building scalable and maintainable code
  • Approaches to consider when building web applications for mobile or desktop
  • Which tools and resources the experts recommend

Best Practices for Building HTML5 Applications

January 22, 2015

10:00am PST

Best Practices for Building HTML5 Applications

5 Comments   Read more

Sencha Space: Beyond Native Packaging — Your Questions Answered

In last week’s webinar Sencha Space: Beyond Native Packaging, we discussed some of the important aspects of hybrid application development that cause significant friction. Specifically, we illustrated how native packaging tools waste both time and money by forcing developers to repeat the application development lifecycle for each of their supported platforms.

We then introduced Sencha Space and demonstrated how it makes the process of developing and deploying HTML5 applications much faster and easier. Using a managed runtime environment that supports desktops, tablets and smartphones, organizations can greatly reduce the amount of testing required for their applications and eliminate the hassles associated with deploying to consumer app stores.

Best of all, Sencha Space achieves these time and cost savings while also offering built-in user management and application security from the start.

Q&A

Following the presentation we had a lively Q&A with our audience, and we wanted to share some of that with you.

Can the Sencha Space client application be branded for my own organization?

Absolutely. Sencha Space can be uniquely branded with a custom icon, your logo and splash screen. Once users have been authenticated into the Space client, the colors and logo can be configured to match your organization’s branding. If this is something you’d like to do, please contact our Space team directly at space-feedback@sencha.com.

At one time, didn’t Apple allow apps to download and run “interior” apps without submitting those directly through the App Store. How does Space get around this?

Some time ago, Apple revised its terms of use specifically detailing how native apps can access or distribute content. The policy states that you cannot download or update native code without re-submitting the app through the App Store — but you can download or update HTML5 code running within the WebView, as long as it does not substantially change the intended purpose of the app.

Because the apps running inside Sencha Space are considered “web content”, Sencha Space abides by the terms of use for the consumer app stores.

Can Sencha Space access local resources on either mobile or desktop devices?

Sencha Space provides an encrypted file system for each application to use, so client apps can store resources locally (via the Camera or Downloads APIs) and retrieve them later. The Ext.space.Camera API also allows users to access photos from their devices’ libraries.

Does the Ext.space.Invoke API send messages through a server? Or do applications communicate directly within the Space client?

Invoke is a JavaScript API that lets one application securely run and communicate with another application running within Sencha Space. Because Sencha Space supports multiple WebViews to run the individual applications, your apps no longer have to send messages to a server and wait for asynchronous notifications. Using Invoke, applications communicate directly — which lets you build simpler, smarter applications.

The Ext.space.Invoke API allows apps to communicate either in the foreground or the background, and also handles the incoming messages received from other Space apps. And because all of this happens within the secure Space container, none of the data is ever exposed to the outside. Furthermore, administrators can configure which applications can communicate with each other.

Conclusion

The answers above represent just a fraction of the questions we answered during more than 20 minutes of Q&A. We covered a wide variety of other topics, and we encourage you to watch the recording in its entirety to learn more about Sencha Space.

You can check out Sencha Space for free by visiting manage.space.sencha.com and simply creating an account. Then watch Sencha Space: Beyond Native Packaging to see our great demos and learn how Sencha Space simplifies application deployment.

2 Comments   Read more

SenchaCon 2015 is Ready to Roll

SenchaCon 2015 is Ready to RollSenchaCon 2015 is April 7-9 and will take place in the heart of Silicon Valley at the Santa Clara Convention Center. The theme of this year’s conference is Design Develop Deploy. We’ll have a day of bootcamps followed by 2 days jam-packed with tech sessions designed to help you get a deeper understanding of the latest tools, techniques and innovations from Sencha. You’ll learn how to design, develop, test, deploy and manage HTML5-based applications more effectively.

Registration is now open! Don’t miss out on this great opportunity to rub elbows with Sencha users from around the globe and see how they use Sencha to drive their business. Sign up now to get super early bird pricing. It’s only available to the first 100 registrants.

SenchaCon 2015 is the place to be to get hands-on training from the experts, see amazing apps that others are building and deploying, have your dev questions answered, and network with the Sencha team as well as other developers. Here’s a sneak peek at what we have planned for you:

  • Pre-conference bootcamps to get you geared up
  • Keynotes that will be sure to get your creative juices flowing
  • Customer presentations that show how using modern web technologies drives business success
  • Tech sessions that are not for the faint of heart

Plus lots of fun — ping pong, pitchers and parties! You won’t want to miss the amazing SenchaCon party we have lined up. Details to follow!

If you develop or manage apps that use Sencha frameworks and tools, you won’t want to miss SenchaCon 2015.

We look forward to seeing you there!

senchacon-teaser.png 3 Comments   Read more

Announcing Sencha Space 1.2

Announcing Sencha Space 1.2We are pleased to announce the latest release of Sencha Space, our secure application management platform that lets you easily deploy your applications to the most users, on the most devices, with the least hassle. Space consists of two parts:

  1. An app that your end users download and install on their smartphones, tablets, and now with Space 1.2, their desktops and laptops
  2. An admin console application that your admins use to manage users’ access to your applications and data — available in the cloud or now on-premise.

Many organizations feel pressure to deliver the right user experience at the right time on the right screen — including any desktop, tablet and smartphone. However, leaders in these organizations have frequently approached desktop and mobile application development as different silos. They employ different management and security technology to address deployment, data protection, and compliance reporting needs, creating unnecessary complexity, costly administrative overhead, and unproductive friction between development teams.

The latest release of Sencha Space helps organizations to deploy, audit, and secure applications on any supported desktop, tablet, or smartphone. Space helps to address the challenges of building, testing, and deploying cross-platform HTML5 applications.

In addition, Sencha Space can help organizations to reduce the cost and complexity of developing cross-platform, multi-device applications by streamlining the development and deployment process over the application’s lifetime. This can be achieved by eliminating inefficient development processes and streamlining development, test, and debugging for developers. By simplifying application testing and eliminating the need for multiple code bases, native packaging, and app store deployment, organizations can potentially save months of developer time and use those resources more productively. According to economic models of the application development process, Sencha Space can save organizations as much as 60% in development expense over an application’s lifetime, compared with existing native and hybrid development models.

New Features in this Release

  • Desktop Client Application – Use a single integrated platform to deploy applications to users on desktop, tablets, and smartphones.
  • On-Premise Administration – Deploy the rich management capabilities of Space in your own data center or private cloud instance.
  • Custom Runtime for Android – Reduce the burden of the extreme Android platform fragmentation with a consistent, high performance, Chromium-based runtime across all Android 4.x devices.
  • Remote Debugging Support — Simplify application development and testing with remote debugging for Android and iOS. Your teams can find and fix bugs faster.
  • Many new additions to the Space SDK – Use Space APIs to do more than ever with the platform. You can learn about all the new APIs here.

Benefits

  • Easily deliver business applications to desktops, tablets, and smartphones in a secure web application environment that encrypts and segregates proprietary apps and data on the device.
  • Reduce the cost and complexity of multi-device enterprise application development, maintenance, and deployment by eliminating the need for multiple code bases, native packaging, consumer app store deployment, and the use of sensitive apps in insecure consumer browsers.
  • Develop and debug cross-platform applications with a superior user experience using the Sencha Space APIs and Remote Debugging capabilities.
  • Improve IT policy enforcement with centralized management of users, groups, applications, devices, and policies for access control and security.
  • Help simplify audit and regulatory compliance with usage data analytics and reporting.

Get Started Now — Free 30-day Evaluation

You can start your free trial by going here and creating your account. For more information, check out our updated Sencha Space website.

space-teaser.png No Comments   Read more

Sencha Space Smooths the Transition to iOS 8

Sencha Space Smooths the Transition to iOS 8Although technology enthusiasts generally greet new Apple releases with a jubilant fanfare, new device and iOS releases regularly impose significant costs for application developers. As we covered in our blog post, Apple Shows Love for HTML5 with iOS 8, there are many great new features for web developers in Apple’s latest release. However, there are also a number of important unresolved bugs which directly impact hybrid applications.

Major version upgrades are always tedious; hybrid applications faced similar problems when iOS7 was first released. The reality is that many developers face the burden of working around these bugs and updating their applications to fix backward incompatibilities between versions, to update graphics to account for the new screen sizes of the iPhone 6 devices, and to test all of this hard work against an ever-increasing number of variables.

Fortunately, Sencha Space insulated its subscribers and end users from these interruptions. HTML5 and JavaScript application developers who use Sencha Space to manage the deployment of their apps did not have to make any code changes, test against new devices, or submit new binaries to the App Store. By targeting the consistent runtime environment that Sencha Space provides, developers shielded their apps and end users from the disruption of the iOS 8 upgrade.

What about Cordova?

PhoneGap and Cordova applications were not spared from this complex upgrade process. To take full advantage of the new larger iPhone devices, developers at a minimum had to test and re-submit their applications to the App Store. The Cordova project did release an updated version that resolved a number of API and plugin bugs — but developers were still required to first upgrade Cordova, then re-test and re-submit each application individually.

Conversely, because Sencha Space was ready for iOS 8 on day one, end users who upgraded to iOS 8 were able to simply upgrade their Space client application and all the apps deployed to them through Space continued to work as intended.

A Better Way to Deploy Applications

The benefit to developers in Sencha Space is simple, but profound. Over the lifetime of their applications, developers no longer have to worry about incurring an expensive maintenance cycle on their apps every time an OS vendor releases a new version. Imagine how disruptive that could be for development teams who support two, three, or four different target operating systems for their apps — a cost that is multiplied across every application maintained by an organization.

Because Sencha Space preserves API compatibility across different OS versions, developers can continue to drive new innovations for their apps instead of diverting resources just to keep their apps working and accessible in various application stores across device platforms. This helps to reduce the cost of developing cross-platform, multi-device apps and makes it easier to do more with the same amount of resources.

To learn more about Sencha Space, visit www.sencha.com/space.

1 Comment   Read more

4 Questions to Ask Before Choosing a JavaScript Framework

4 Questions to Ask Before Choosing a JavaScript FrameworkOver the last five years, there has been an explosion of innovation in both web and native technologies. With the rapid release of libraries, frameworks and tools, developers now have many options to create applications for this new world. But, have design patterns and the general utility of micro-library stacks really added productive value to full-scale enterprise web development?

I’ve had the opportunity to interact directly with Sencha enterprise customers over the past several years, and I’m frequently asked how Sencha compares to alternatives in the wider web application development ecosystem. With the evolution of popular (but limited) libraries like AngularJS, Ember and others, developers today have an incredible number of tools to choose from — and often the resulting “solution” is a completely customized stack of multiple, single-purpose, third party libraries.

While these individual libraries and the resulting custom stack have the potential to do some things very well, the unfortunate reality is that a great deal of the functionality must be gathered together from disparate sources, written in-house and require a dedicated team of maintainers in order to meet the demands of enterprise software development.

To learn more, join us for our upcoming webinar.

Analyzing the ROI of JavaScript in Enterprise Software Development

Tuesday, 10/14 at 10:00am PDT

To learn more, join us for our upcoming webinar - Analyzing the ROI of JavaScript in Enterprise Software Development

Sencha has long recognized the power of HTML5, and we have worked hard to create a feature-rich, fully integrated product line focused on developing powerful web applications in the enterprise. As a continually evolving, modern, full-feature JavaScript framework, Ext JS is carefully engineered to meet the most important needs of enterprise web applications — without requiring an assortment of third party add-ons.

Before you start work on your next project, ask yourself these four questions:

  • How can you make your development teams more productive?
  • Can you accurately estimate the development effort involved in making long-lived enterprise applications?
  • Can your developers easily re-use code across the company’s complete application portfolio, regardless of the end-user device or platform?
  • Can you accurately predict the long-term maintenance requirements of an application across its entire lifecycle and potential end-point delivery platforms?

Let’s address each of these questions in detail and examine why the Sencha Ext JS framework is a better choice for building enterprise web applications compared to an arbitrary stack of solutions built on top of third party libraries like AngularJS.

How can you make your development teams more productive?

Every company wants to know how they can help their employees be more productive, and this is particularly true in software development.

One of the most important benefits of HTML5 is that web developers share a common skill set — allowing them to build powerful, interactive applications in a variety of environments. But despite the fact that HTML5 is a common skill set, the reality is that fragmentation exists across the popular libraries and tooling, and it’s difficult to train developers consistently.

Modern Web Stack Criteria

(click to enlarge)

Consider the matrix shown above, which contains all of the different features an enterprise application will likely need. Most popular application libraries, like AngularJS, only implement a small subset of these features — meaning the developer (and by proxy, the enterprise) becomes responsible for pulling together an array of third party software components (and their dependencies) to cover the missing features, unless these features are developed and maintained in-house.

A functionality map showing the broad feature set of Ext JS 5 compared to Angularjs' smaller subset of features

(click to enlarge)

With this approach, it’s also important to consider that each of these third party libraries is independently distributed, each with their own release cycles and “best practices.” Combining many disparate libraries into a single highly-customized application stack often highlights the lack of integration for individual features across the stack, and documentation is also usually incomplete because no two application stacks are exactly the same.

Plus, what happens if you need help? Google might be driving development of AngularJS, but they don’t offer support of any kind, let alone dedicated and timely enterprise support. The same is also true for nearly all of the popular third party JavaScript libraries.

Clearly the challenges companies face with this approach involve:

  • Adequately training their developers across all of the moving pieces
  • Testing the latest releases of all third party dependencies against many internal applications
  • Finding enterprise-level support

This “Rube Goldberg” approach will adversely affect productivity over time, and usually sooner rather than later. The overall efficiency of the development and IT organizations suffers because large development teams are frequently split into two areas of focus: the team doing the updating, documentation and maintenance of the internal custom framework and then the team doing the actual application development that matters to customers or end users.

By contrast, the Sencha Ext JS framework contains nearly all of the features in the matrix. These features are fully integrated across Ext JS, helping your developers design, develop and deploy applications consistently. Our world-class dedicated Training, Support and Professional Services teams also ensure that your organization can get the training and support when needed, giving them the additional resources they need to stay focused and on schedule.

Can you accurately estimate the development effort involved in making long-lived enterprise applications?

It’s no secret that the most common cause of runaway software projects and budgets is poor estimation. A large part of this problem is poorly defined scope, but IT managers also frequently neglect to look at the tools being used to write the software.

No software library or tool is perfect, and it’s certainly unrealistic to expect anyone to know 100% of the tools being used. When you apply that fact across all of the dependencies a project might require, you can easily see how complicated the project estimation matrix becomes.

By applying some simple mathematical formulas, you begin to understand the real-world consequences of having too many dependencies. Assuming every dependency has a 90% reliability factor, and if we treat these dependencies as existing in series, all you need to do is multiply by the number of factors to visualize the overall reliability of the architecture:

(Dependency A = 0.9) x (Dependency B = 0.9) = 0.81 //or 0.9^2
 
(Dependency A = 0.9) x (Dependency B = 0.9) x (Dependency C = 0.9) = 0.729 //or 0.9^3

Although 90% is an average (and perhaps a somewhat arbitrary) metric, the mathematical premise remains intact. You can clearly see how adding more dependencies reduces a system’s reliability exponentially — and that reduction in reliability will translate into problems like delays in delivering features, additional maintenance and testing time, or the need to allocate additional development resources. This directly leads to increased costs and a whole lot of “attention and help” from senior management — something most developers don’t enjoy.

When choosing to build your own framework with AngularJS, your team immediately assumes a number of external dependencies. The customized application stack typically involves AngularJS, jQuery, Bootstrap, Grunt, and others — not counting any code developed and maintained in-house. While this might be fine for smaller projects and teams building relatively straight-forward applications and websites, the potential risks and consequences become very pronounced in the enterprise, where teams are larger, geographically diverse, and maintain a large code base common to many applications.

A full-featured framework, such as Ext JS, has fewer development dependencies because the framework simply contains more functionality, eliminating the need for most third party libraries. But the factors of reliability even go beyond the number of dependencies — because Ext JS contains more functionality, that functionality is inherently more reliable because each feature is guaranteed to be compatible across the framework. With fewer required points for third party integration, it’s easy to see how estimating future development is less complicated by using a full-featured framework.

Can your developers easily re-use code across the company’s application portfolio, regardless of the end-user device or platform?

There are two popular acronyms often used in software development: DRY (Don’t Repeat Yourself) and KISS (Keep It Simple, Stupid). And while most developers and application managers understand those terms, it’s also clear that not everyone follows this advice.

For example, most senior developers understand how to extract common code patterns into a higher-level abstraction to be used in multiple places — and therefore the problem of re-use at the small scale is pretty well solved. But what happens in the enterprise, where an organization may have very large software teams managing many applications across a variety of devices and platforms?

The reality of software development in the enterprise is that large-scale code re-use is mostly an unsolved problem. Modification of re-used code is particularly error-prone in these situations, so the “third party library” approach to application development really begins to cause issues as individual modules, developed by different teams with uncoordinated release cycles, need to be updated or replaced.

Ext JS solves this problem by applying a standard application development process, organizing the code itself and providing a consistent methodology. Combining Ext JS with Sencha Cmd, the fully integrated Sencha product line makes it simple to share code across teams and applications.

Can you predict the long-term maintenance requirements of an application across its entire lifecycle and potential end-point delivery platforms?

It has been said that software maintenance is largely about adding new capability to old software — not necessarily fixing bugs. In fact, maintaining existing applications typically consumes between 40 and 80 percent of software costs.

Enterprise software often is designed to stay in production for as long as five to ten years — sometimes longer. Consider that most of the popular JavaScript libraries are only targeting “modern browsers.” Keep in mind that older browsers (namely IE8) still maintain a sizeable chunk of the desktop browser market share, and yet AngularJS and other libraries have completely dropped support for it.

With those sorts of numbers, it’s absolutely critical that development teams actually understand the tools used to build the product. If simply reading and comprehending the existing code consumes as much as 30 percent of the total maintenance time, you can conclude that application maintenance is more difficult than the initial development. This problem only gets worse when the teams maintaining applications inevitably change over time, and the constant influx of new developers results in additional confusion.

Because all Sencha applications follow the same design patterns and methodology, any developer on the team can handle both new development as well as maintenance of legacy software. Ext JS also supports legacy browsers (including IE8) in addition to the latest “modern” versions, so your applications are guaranteed to work for years to come with no additional worry.

Conclusion

Popular JavaScript libraries like AngularJS certainly have their place in the world of web development. The incredible growth of permissive open source code has enabled HTML5 to explode as an application delivery platform and secured its future as a critical web technology. But the enterprise has very specific, long-term needs that are simply not addressed by ad hoc assemblies of disparate micro-frameworks gathered from uncoordinated sources.

Ext JS is clearly positioned to address these concerns, and does so through a robust and tightly integrated set of features. Download the free 30-day trial and see for yourself how building powerful enterprise web applications is easier with Ext JS.

Want to learn more? Join us for our upcoming webinar.

Analyzing the ROI of JavaScript in Enterprise Software Development

Tuesday, 10/14 at 10:00am PDT

To learn more, join us for our upcoming webinar - Analyzing the ROI of JavaScript in Enterprise Software Development

Additional Resources

This blog post specifically compared Ext JS to AngularJS, but Sencha has compiled a much deeper analysis of Ext JS to other JavaScript libraries. For more information, please read our recent whitepapers:

analyzing-the-roi-of-javascript-in-enterprise-software-development-1.png 13 Comments   Read more

Creating Native Windows 8 Apps with Ext JS 5

Creating Native Windows 8 Apps with Ext JS 5Microsoft has a long and storied history in the field of web development. After Internet Explorer (IE) effectively won the first ”browser wars“ of the late 1990s and early 2000s, development on IE stagnated. IE6 was released in 2001 and quickly amassed 90% of the browser market share at that time — but IE soon received a poor reputation because it was not updated to support the newly emerging web standards in the years that followed. The subsequent ”browser wars“ of the late 2000s, coupled with the introduction of mobile devices, quickly eroded IE’s dominant market share.

But in recent years Microsoft has fought hard to improve its reputation as a leader in the tech community, specifically under the banner of HTML5. Microsoft first began touting the benefits of HTML5 back in 2010, and soon added their first HTML5 features in IE 9.

Microsoft’s support for HTML5 has continued to grow and expand since then (read the Sencha whitepaper). With the arrival of Windows 8 in 2012, Microsoft elevated web technologies as first-class development options to build native Windows applications. For the first time, developers could use JavaScript, HTML, and CSS to build and distribute as native Windows applications without the use of special wrappers or compilers.

As a developer excited by all things HTML5, I jumped at the chance to begin building Windows 8 applications. I even spoke about creating Windows 8 applications with Ext JS at SenchaCon 2013… but I quickly discovered how Windows 8 apps built with HTML5 were very different from those running in a browser.

Fast forward to 2014, and Sencha has released Ext JS 5. Among the many new features is a little known improvement that makes building Windows 8 applications completely seamless. Let’s take a quick look at how Windows 8 applications are different from basic web apps, and then dive into how Ext JS 5 makes it easier to develop Windows 8 apps.

Windows 8 Applications

Windows 8 originally shipped with IE10 as its browser, and now Windows 8.1 comes with IE11. According to multiple sources (HTML5Test.com, HTML5Readiness.com, and even Sencha) both IE10 and IE11 have pretty awesome support for HTML5 — which is important because native Windows 8 applications built with web technology effectively use the same rendering and JavaScript engines as IE10/11.

HTML5test.com score over the years.

However, because native Windows 8 applications can access the native Windows APIs, Windows 8 applications built with HTML5 are subject to the security model of the Windows shell. This security policy restricts many practices JavaScript developers take for granted — things like using the window API and dynamically adding HTML. But because many JavaScript frameworks handle DOM operations under-the-hood (Ext JS included), building native Windows 8 applications with your favorite JavaScript framework has historically been a challenge.

Ext JS 5.0.1 and the ext-win8 Package

With the recent release of Ext JS 5.0.1, Sencha has committed to making Ext JS comply with the Windows 8 security policy. This process involves two important parts:

  • Ext JS 5.0.1 was carefully crafted to include a special hook that, when configured, elevates restricted JavaScript and DOM operations into the proper execution context.
  • We created a special Sencha Cmd package containing the configured hook (ext-win8) that is incredibly easy to install.

As a result, you can build native Windows 8 applications using Ext JS, just as you would any other web application.

To install the ext-win8 package, simply add ”ext-win8“ to your application’s app.json file under ”requires“.

//…
"requires" : [ "ext-win8" ],
//...

Then use Sencha Cmd to refresh your application:

sencha app refresh --packages
//or
sencha app build development

Sencha Cmd will then download the ext-win8 package from our CDN and install it into your machine’s local repository (e.g. /Users/arthurakay/bin/Sencha/Cmd/repo/pkgs/).

As part of the refresh/build process, Sencha Cmd will copy ext-win8 to your application (or workspace) and rebuild your application’s dependency chain, ultimately including the necessary Windows 8 hooks.

Watch the following short video to see how it all works:

The sample application from the video is also available on GitHub.

Conclusion

By embracing HTML5, Microsoft has opened new doors for developers and provided access to new markets for HTML5 developers. Equally important, Microsoft has shifted from laggard to leader in HTML5 support—and in so doing has signaled strong support for the idea of multi-device, multi-platform, universal apps.

With Ext JS 5 fully primed, now is the time for developers to take a fresh look at the Windows 8 platform to evaluate how HTML5 creates new options for their businesses and their customers.

creating-native-windows-8-apps-with-ext-js-5.png 5 Comments   Read more

Apple Shows Love for HTML5 with iOS 8

Optimizing The Development Process With Sencha Cmd 5We were as excited as everyone else with last week’s Apple iOS 8 release announcement. We have only had the iOS 8 GA bytes for a few days, but we wanted to do as quick and complete a write-up as we could to give the global web developer community an in-depth look at Apple’s latest release. There’s no doubt we’ll see a few items we missed in the next couple of weeks and months, but for now we wanted to run our battery of benchmarks and tests and share what we’ve already uncovered.

This post documents our performance and technical breakdowns of the current state of HTML5 as iOS 8 becomes the baseline for Apple devices. For a similar review of iOS 7 for web developers, please see our blog post from last year.

New iOS 8 Features Will Further HTML5 Development

Let’s begin by taking a look at some features that have been added with this upgrade.

New iOS8 Features Will Further HTML5 Development
Source: caniuse.com

Though all of these features are great and help further HTML5 development, the big ones that clearly stand out are:

WebGL – 3D Canvas Graphics

Hardware-accelerated 3D Graphics support — no question this is a huge feature for web developers. Though we will likely see this feature used heavily in gaming, there are a lot of additional uses, especially in the areas of animations and transitions. To get a quick peek at what is possible, fire up this WebGL Sprite Particle Demo.

CSS Shapes Level 1

This rarely seen feature was really only available to us in Chrome, Chrome for Android and Opera, but it has finally busted into the big time with prefixed support in iOS 8. CSS Shapes allows for much more dynamic text layouts that can make your application feel more like a magazine than a web page. To see some examples of this at work, check out Shapes from Adobe.

HTML Templates

One of the foundational elements in Web Components is now available in the latest Android and iOS browsers. This is a big step towards making a truly modular web and opens up a lot of potential with one less polyfill required.

Navigation/High Resolution Timing APIs

Though superficially not an extremely popular end user facing feature, having a streamlined performance timing API will allow for much better cross-platform benchmarking and performance testing.

IndexedDB

Even though WebSQL has been, and still is, available for Android and iOS, we currently have no support for IE. To make matters even worse the Web SQL Spec is no longer maintained and will likely be dropped in a future version. Luckily for us, IndexedDB is now available across iOS, Android, Chrome for Android, Safari, IE Mobile and has partial support in Blackberry 10 and IE 10/11.

SVG Fragment Identifiers

This feature sneaks in under a very cryptic name, but trust us, it’s a powerful one. Currently available in IE 10, 11 and Mobile, iOS 8 Safari and Chrome for Android, SVG Fragment IDs allow for very powerful vector spritesheets. Not only will this be very important for web gaming but also more dynamic icons and other UI elements.

As mobile web developers, you are already used to working with the latest browser versions and features. We all know that Apple has a fantastic upgrade system that will allow iOS 8 to reach all of its users very quickly. If your application is targeted specifically at iOS devices, you can easily start using features like IndexedDB, SVG Fragments or benchmarking with the new Timing APIs. For those looking to keep parity with iOS 7 and/or develop for multiple platforms (Android, Windows Phone, BlackBerry), you can scope down these new features with Sencha Touch built-in OS detection. Sencha Touch will allow you to use the new features in your application now and phase out your older code over time.

The All New WKWebView

The All New WKWebView

With the release of iOS 8, we are both blessed and cursed with a bit of fragmentation. iOS 8 ships with two native webviews built in. The first is the good old “UIWebView” that we know and love. It currently is kept for legacy purposes, but lucky for us Apple did not simply smash the older iOS 7 “UWebView” into iOS 8, they have upgraded the core WebKit code to be on parity with their brand new webview, “WKWebView”. “WKWebView” will be the place to get your hybrid app, as we move into iOS 8. It has the Nitro JS engine, which we have tested and measured to have at least 4x the performance of “UIWebView”. This has the potential to be a huge win for hybrid apps. However, at this time, there are some significant bugs that impact just about everyone. More on that later in this post.

The good news is that the new high performance “WKWebView” is a step in the right direction from a Web development perspective. Even though JavaScript is rarely a bottleneck for applications as we typically see more issues with animation or DOM repaints, we believe that with substantial boosts to the Dom Core, the “WKWebView” will help Sencha Touch applications see huge performance improvements.

Performance Gains Across the Board

Performance testing is always a must, and this time around we have some rather interesting results. Overall, it looks like going to iOS 8 will be a win for everyone across the board. There are a few octane scores that were slightly lower in iOS 8, along with Base64 and Code Eval. So let’s dive into some charts and try to figure out what all this means.

Note: All these tests were done on a 5th generation iPod Touch in the hopes that, compared to all of the iPhone 5s and soon iPhone 6s out there, these score will help you find your lowest threshold for iOS development.

We can see that iOS 8 wins out in pretty much every test except CodeLoad.
Source: http://octane-benchmark.googlecode.com/svn/tags/v1/index.html

Unfortunately, at the time of testing, Google Octane v2 crashes iOS 8 Safari for us, so we were unable to run any new tests. Regardless, this gives us a pretty good overview.

We can see that iOS 8 wins out in pretty much every test except CodeLoad. CodeLoad measures how quickly the JavaScript engine can start running after pulling in a very large JavaScript file. It’s worth mentioning the code for this test is based on Closure and jQuery, but one would have to agree that it’s a pretty good benchmark for this kind of thing.

For applications built with Sencha, we might see a slightly longer delay in application startup, as compared with iOS 7, because these applications tend to have larger JavaScript loads upfront instead of incremental loading. For all other tests, iOS 8 is either very close or a clear winner over iOS 7.

The Dom Core test from Dromaeo is actually much better than what the chart shows.
Source: http://dromaeo.com/?dom

The Dom Core test from Dromaeo is actually much better than what the chart shows. The fact that Query shows such a huge improvement, overshadows the improvements in Attributes, Modification and Traversal. Looking at the raw numbers, we saw a 122% improvement in Attributes, 65% for Modification, 48% for Dom Traversal and a whopping 308% boost for Dom Query.

This is great news for Sencha developers as dom query is used a lot by Sencha frameworks.

After seeing dramatic improvements in the DOM Core tests, we looked at the CSS selector performance boosts at the framework level. Ext JS Selector times improved by 126% by simply moving to iOS 8 Safari.
Source: http://dromaeo.com/?cssquery

After seeing dramatic improvements in the DOM Core tests, we looked at the CSS selector performance boosts at the framework level. Ext JS Selector times improved by 126% by simply moving to iOS 8 Safari.

Note that these CSS Selector tests currently use Ext JS 3.x and the framework has improved dramatically with the release of Ext JS 5.x. As a result, the actual improvements will be even better.

We can see there’s a  bit of a performance dip when working with Base64 strings and code evaluation via new Function and eval.
Source: http://dromaeo.com/?dromaeo

Moving on to some pure code tests, we’re looking at some fundamental JavaScript functions that almost every application would use. We can see there’s a bit of a performance dip when working with Base64 strings and code evaluation via new Function and eval. We did however get some dramatic gains in Arrays, specifically in Array construction. Developers shouldn’t be too concerned, as we already discussed in our Fastbook post, JavaScript is plenty fast for creating most any application. GPU compositing is much more important than the JavaScript for creating fluid apps nowadays. Which brings us to our next benchmark focused on GPU interactivity.

The chart here pretty much speaks for itself. We see a huge 78% increase in fps (frames per second) by simply switching to Safari in iOS 8 vs iOS 7.
Source: http://ie.microsoft.com/testdrive/performance/fishietank/

The chart here pretty much speaks for itself. We see a huge 78% increase in fps (frames per second) by simply switching to Safari in iOS 8 vs iOS 7. It’s obvious that Canvas got a number of updates, and the results are really showing up in our WebGL examples.

If you skip ahead to the bug area, you will see that there are some challenges today that are keeping us from using the “WKWebView” in hybrid apps.
Soutce: http://dromaeo.com/?cssquery

Now, this is a bit of a bittersweet chart, as we can easily see the vast improvement in “WKWebView”. But if you skip ahead to the bug area, you will see that there are some challenges today that are keeping us from using the “WKWebView” in hybrid apps.

If anything, we hope these numbers push more developers to head over to Apple and push to get these “WKWebView” bugs fixed ASAP, so we all can start taking advantage of these performance improvements in all our applications. Once again, the Dom Query overshadows all the other numbers. For the record, with “WKWebView”, Attributes is 208% faster, Modifications are 37% faster, Traversal is 249% better, and Query is a whopping 358% improvement over the old “UIWebView”.

Although the Sunspider test results are not nearly as dramatic, we still see some improvements.
Source: https://www.webkit.org/perf/sunspider/sunspider.html

Although the Sunspider test results are not nearly as dramatic, we still see some improvements. iOS 8 Safari came in about 14% ahead of iOS 7 Safari and the “UIWebView” jumped up about 5%. Small gains, but all positive, and they show that everything is moving in the right direction.

In this chart, we’re looking at the raw score from HTML5 Test, and it’s easy to see iOS 8 Safari has a nice boost in supported features over iOS 7.

Source: http://html5test.com/

In this chart, we’re looking at the raw score from HTML5 Test, and it’s easy to see iOS 8 Safari has a nice boost in supported features over iOS 7. However, to properly interpret these results, we need to discuss some changes under the covers that have a big impact on these statistics. So let us boil it down for for you with a few bullet points:

  • Seamless iFrame was removed in iOS 8
  • IndexedDB was added to iOS 8 Safari and “WKWebView”
  • IndexedDB is not available in iOS 8 “UIWebView” or Home screen apps
  • Objectstore ArrayBuffer does work in iOS 8 Safari and ”WKWebView” (Note: This test fails on the HTML5 Test site even though the feature is working. If this was properly detected, iOS 8 Safari would score a 440.)
  • Objectstore ArrayBuffer is not available in iOS 8 “UIWebView” or Homescreen apps
  • WebGL 3D Graphics were added to iOS 8 in Safari, “WKWebView”, “UIWebView” and home screen apps
  • The userAgent for “UIWebView”, “WKWebView” and a Homescreen app are identical

Even though Apple has done a pretty solid job of keeping “WKWebView”, “UIWebView”, Safari and Home Screen applications at the same level of functional capabilities, the differences may cause some frustration for Sencha developers. Developers now need to be a little more aware of the context in which their application is going to run. Example: “UIWebView” and Home Screen applications do not have IndexedDB or Objectstore Array Buffer support. Because the browser User Agents are the same, there’s no easy way to scope down your application based on where it’s being served, which means developers will need to feature detect these things individually.

The Bugs

3 major bugs that are going to potentially affect HTML5 developers and therefore, Sencha customers.

We all know that no release of any software is bug-free, and of course iOS 8 has a few worth mentioning. So far, we have uncovered what we consider to be three major bugs that are going to potentially affect HTML5 developers and therefore, Sencha customers. Now, that being said, these bugs are not specific to Sencha apps and will actually affect the development efforts of many developers for the next couple of months. If you wish to help, please check out the radar link below each bug and head over to the Apple Bug Reporter. There, you can duplicate our bug and submit it, and the more hard data and test results we provide proving the bug’s impact, the faster (we hope) they will be seen and then fixed.

WKWebView Local File Loading Bug

Remember that amazing new WebView I was just telling you all about? The one with the super fast Nitro JS engine and shiny new everything. Well, its broken… The bug here is a security issue which does not allow “WKWebView” to load files from the local filesystem. So what this means is that your embedded index.html is not accessible to the “WKWebView”. This is a blocker for PhoneGap and Cordova applications that are using offline/local files to serve up an application. So currently, if you would like to use “WKWebView” in your application, you must load your files from a remote server. For example, loading “index.html” will not work, but loading “http://www.google.com” will work just fine.

Radar Bug Report: http://www.openradar.me/radar?id=5839348817723392

XHR Local File Access

Currently, anything using the new “WKWebView” code has a broken XHR Local File issue. This includes Safari, homescreen apps and any embedded apps inside a “WKWebView”. If you’re using Cordova or PhoneGap, you will still be locked into the older “UIWebView” which does not suffer from this bug. The bug itself simply does not allow the XHR object to send local files off the phone. So, if your application currently is using the photo gallery or camera to grab an image and then via AJAX send it to the server, you are sadly out of luck in iOS 8. What you”ll see is that your application will hang with no response after calling “send.”

Radar Bug Report: http://www.openradar.me/radar?id=5834555097350144

Home Screen Apps Lose Timing Functions After Lock/Wake

If your application is being used as a homescreen web application, you’ll find yourself in a sorry state. Of course, any web app can be converted into a home screen app by the user, so I guess technically this affects anyone making a remote web application. This bug is easily reproduced by simply calling setTimeout(callback, 1) or requestAnimationFrame(callback) via some button or event. When you first open your application, you’ll notice all timing functions are working fine. However if you lock your phone and then unlock to return to your application, you’ll see none of the timing functions can call callbacks anymore. They are simply broken at a native level. There is no reset, no bringing your application back to life, it’s a kill it and restart situation. These timing functions are crucial to the Sencha Touch and Ext JS frameworks along with pretty much every other JavaScript framework/library ever made. Definitely head over to Apple as soon as you can, and let them know that you would like to have all of your JavaScript functions, all the time.

Radar Bug Report: http://www.openradar.me/radar?id=5895945212395520

There is some good news here, because so far we’ve only uncovered issues that affect “WKWebView” applications. If you are one of the many people that have tried or are using Sencha Space, there is absolutely no impact because your application is safe — with Space, you are inside a managed web runtime that includes a secure browser. If you haven’t tried Sencha Space yet, you should check it out here.

Things to Come

Overall, with the release of iOS 8, we’re very pleased with where Apple iOS is heading, because the performance improvements and new features are only going to improve user experiences for apps built on the iOS 8 platform. However, we certainly hope Apple addresses the bugs very quickly that we discussed, because their presence impairs the full realization of the power of iOS 8 for web developers — whether they use Sencha frameworks or any number of other popular alternatives.

If we look further into the future, we can expect to see a crossover between iOS 8 and Chrome for Android with great features such as CSS Shapes, srcset atrribute, and SVG fragment identifiers.
Source: caniuse.com

If we look further into the future, we can expect to see a crossover between iOS 8 and Chrome for Android with great features such as CSS Shapes, srcset atrribute, and SVG fragment identifiers. Though not shown in the above image, Chrome for Android already has partial support for WebGL 3D Canvas graphics and really the partial is more about older devices that are capable of running Chrome but just don’t have what is needed to power WebGL 3D.

Conclusion

iOS 8 is certainly an exciting release for Web developers with amazing new features and huge performance boosts that will further help HTML5 cross-platform development.

At Sencha, we’re always looking to help developers stay at the forefront of the next generation of web development. We are focused on bringing the best and most complete cross-platform solutions to our users, so they can deliver amazing application experiences to every device. We can’t wait to see what you all will invent with us. Thanks for tuning in, until next time.

ios8-teaser.png 16 Comments   Read more