The CSW Solutions Custom Software blog covers all issues related to custom software solutions, custom software development, web development and Information Technology for Small Businesses

Subscribe to our RSS Feed

Subscribe via E-mail

Your email:

Custom Software and Web Solutions | The CSW Solutions Blog

Current Articles | RSS Feed RSS Feed

Hybrid apps versus native apps. HTML5 and Sencha Touch development

 

In my previous article, I mentioned the convenience of developing hybrid mobile apps using Javascript/HTML5 frameworks and I recommended Sencha Touch as my favorite. Since then, this framework has evolved and the Sencha development team has continued to support and improve their products. Specifically for mobile development, they now offer the following tools:

  • Sencha Architect
  • Sencha Touch
  • Sencha Eclipse Plugin
  • Sencha Touch Charts
  • Sencha Mobile Packaging
  • Sencha Support Package 

 (You can get all the information you need about these tools and some usage examples in the Sencha website so I am not going to get into details.)

After over three years of experience developing mobile apps, I still believe Sencha Touch is one of the most advanced mobile frameworks out there, although it doesn’t escape from the inconsistencies of HTML5 implementations in the real world.

I wish I could say everything is smooth and easy in hybrid application development but I can’t. One of the main problems I have found when developing hybrid apps in Sencha Touch is that they (in many case) don’t have the same behavior in every platform. Somehow this would be expected, but things get worse when trying to create a generic application for the Android platform. Due to the number of Android devices manufacturers and different (sometimes customized) versions of Android OS, it is very challenging creating an HTML5 based mobile app that is compatible with the HTML5 implementation of all these devices and versions. In the case of iOS, since all the devices are manufactured by the same company and the HTML5 implementation in Mobile Safari is standard across devices, making an in-platform compatible mobile app is much easier.

The other problem I have found with hybrid apps developed in Sencha Touch compared to native apps is performance. This can also be expected when considering that we are using the browser UI and pretty large javascript files in order to run our HTML app. In some cases this difference in performance does not represent a real problem when comparing it to the convenience of developing a hybrid app. Also, considering that mobile devices are more advanced every year with faster processors and more hardware capabilities in general, this should become less of a problem. However, in some heavy apps the slower performance can be noticeable.

We can’t really blame mobile HTML5 based frameworks for any of these issues since they are inherent to the solution itself. These frameworks provide an alternative to the standard native application development method but are not perfect, and it is very important to understand the pros and cons.  

In conclusion, developing hybrid apps could save developers a considerable amount of time, but it could also be a nightmare trying to make them work in all the mobile frameworks and devices. My advice is evaluating the specifications of the app and compatibility requirements before making any development decisions. In some cases, we have been able to create hybrid apps that meet all of our customers’ specifications and compatibility requirements without any problem, but in other cases, we have taken (for good) the path of developing native apps.

Next time you develop a mobile app, consider all the options. The more experienced you get, the better choices you will make. Doesn't this principle apply pretty much to everything in our daily lives?      

Cross-platform mobile application development and Sencha Touch

 
  

 

cross-platform, ipad,iphone, android

Developing and maintaining mobile applications for different platforms could be really challenging. If we originally wrote our code for a Windows mobile device using Silverlight and Visual Studio for example, that application won’t work on any other phone or tablet outside the Windows mobile family. In order to make that application work on an iPhone or iPad, the code would need to be rewritten using Objective C and xCode, which are the language and tool required for building mobile application for iOS devices.

In an ideal world, we would be able to write our code once, and then build and compile our application for the mobile framework of our choice without getting into too much trouble. Even though having a unique programming language that would allow us to write native applications for all the existing mobile frameworks is still a dream, and also not likely to happen any time soon, there are some alternatives that have just started to be mature enough to be seriously considered by the end-consumer and corporate sector as plausible solutions. Yes, I am talking about combining HTML5, CSS3, and Javascript to create web-based applications that can be converted to native code and would run on our mobile devices just as any another app downloaded from the applications store. But how is this possible? Basically, there are two key components that allow this to happen. First, is the new HTML5 web standard (still under development but stable enough already) that natively supports canvas elements, offline storage, drag and drop, geolocation, file manipulation, among other useful features accessible through new APIs that overhaul the whole concept of standard HTML. The other key element is the tool that makes possible accessing local resources in devices such as GPS, accelerometer, etc, and building a compiled version of the application for the mobile operating system of our choice (for example Phonegap).

There are already some Javascript frameworks specifically intended for mobile devices that can help developers creating cross-platform applications that look very similar to those that are built using native SDKs. There are obviously some limitations in using this approach if you were to develop OpenGL games, but for standard enterprise, entertainment, and general purpose applications, it will work just fine.

One of the most complete and personally one of my favorite Javascript frameworks for mobile devices is Sencha Touch, which provides very responsive native-like controls, data package, and MVC support. It also works very well with Phonegap, making it one of the best choices for creating mobile-friendly web-based applications as well as native HTML5/CSS3/Javascript mobile applications.

Here are some other popular mobile Javascript frameworks that you can try:

- jQuery Mobile

- jQTouch

- iWebkit

- DynamicX

- Wink ToolKit

Red Gate’s .NET Reflector Becoming Commercial (Paid)

 

Friends Of Red Gate

I just got the word that Red Gate’s .NET Reflector will be changing to "paid only" starting with the upcoming version 7 in early march. Neil Davidson (Red Gate’s Co-CEO) wrote this open letter:

An open letter to the .NET community

Red Gate has announced that it will charge $35 for version 7 of .NET Reflector upon its release in early March. Version 7 will be sold as a perpetual license, with no time bomb or forced updates.

As many of you know, our original intention was to maintain .NET Reflector as a free tool. But, after two-and-a-half years of providing it without charge, we realized that we could not make the free model work. We know that this will cause pain for some people in the .NET community, and we apologize for the change in policy.

As a commercial company, we need to charge at least a nominal amount to keep .NET Reflector up-to-date and relevant. Without revenue coming in, we cannot dedicate a team of developers to ensure that Reflector remains a valuable part of .NET developers’ toolboxes.

As always, your feedback is important to Red Gate, so please contribute any thoughts on this subject to our .NET Reflector forum.

Sincerely,
Neil Davidson
Co-CEO, Red Gate Software

This is not a surprise news as at some point most of us expected this turnaround. What we didn’t expect, I think, is that Red Gate is actually NOT releasing a free version of .NET Reflector anymore so the only available product out there will be the commercial (paid) version.

Version 7 of .NET Reflector comes with a new set of features aiming to capture the attention of the .NET community and Red Gate expects a lot of feedback too.

The new license model comes with "perpetual" rights over the version you purchase but upgrades to newer versions will have a small fee.

Version 7 will be released in 3 different versions, although at the time of this writing there is no information about different pricing schemes:

  • .NET Reflector
  • .NET Reflector VS
  • .NET Reflector VSPro

The first one is the stand-alone windows program and the other two integrates with Visual Studio (and also includes the windows app). Debugging capabilities are included only in VSPro.

Among the most interesting features are:

  • Full support for .NET 1.0, 1.1, 2.0, 3.0, 3.5, and 4.0
  • Decompile an entire assembly to either C# or VB to view and debug in Visual Studio
  • Step-through debugging of any assembly in Visual Studio (as long as it's not obfuscated)
  • Step into and set breakpoints anywhere in any assembly
  • Watch variables in the decompiled code
  • Use Visual Studio's advanced debugging features in decompiled code: Set Next Statement, modify variable values, and dynamic expression evaluation in the immediate window

Version 7 Beta 1 is available for download now.

I'm collectiong feedback about everything regarding the new changes in pricing and features to pass to Red Gate so feel free to discuss here.

Mobile Development - Is your wallet obsolete?

 

661wallet resized 600

I had the opportunity today to use my iPhone as a payment method to buy my tea at Starbucks. I was surprised by simplicity of the process. By downloading an iPhone app, you able to add your Starbucks card.

When you click on the pay now button, the application presents a bar code which the barista at starbucks can scan with a bar code scanner. Your card information is sent to the Starbucks server which verifies the card and the amount to be deducted and processes the payment. pretty straight forward, right?

This made me think, our wallet is becoming obsolete. Who needs to carry a container for plastic cards like a driver license, credit card, gym membership etc. everything can be on your phone. Your driver license could be displayed with unique barcode (as most of them already have). Anyone with a barcode and an internet connection could verify its authenticity. The same goes for your credit card.

I think the main concern will be security. How could you secure that the information on the phone is encrypted and can be stolen or hacked to? I think the technology is there, but I think as with all new technology, people will be resistent at first. There are still people out there that do not like to use credit card or purchase online.

What do you think? Are you ready to throw out your wallet and replace it with your phone?


-- UPDATE: I guess our wallet will be replaced by our phone sooner that I expected...

Things I learned about Internet marketing from Hubspot Usergroup 2010

 

Last week I attendend the first annual Hubspot user confrence in Boston. We have been using Hubspot for 6 months already and finding the product to be very useful. The confrence had a lot of great information about the product and internet marketing in general.

Here are some of the things I learned about internet marketing:

  • Dont censor/moderate comments. It shows the trust between company & customer. It's also an open door to engagement.
  • Primary budget factor for inbound marketing is content creation.
  • Write down the top 50 questions you get from customers - this is the core to your long tail keyword strategy
  • Blog twice a week, every week, for the rest of your life, until you die or sell the company.
  • Promote 1-2 weeks before. Email, tweet, FB and list with webinarlistings.com
  • Social media is exceptionally good at spreading worthy content.
  • How to grow your twitter followers? Use your Linkedin connections to find new people to follow on Twitter.
  • Comment on others blogs and website to generate inbound links to your website.

It was a great event and it gave me some perspective on social marketing and inbound internet marketing. I hope the tips I posted are helpful.

-Y

Cloud Computing – The Banking of Cyberspace

 

3 cloud computing resized 600

Imagine each of us had to keep his personal and business assets at his own house or office. We would have to install a good safe, an alarm system, and if we are really paranoid (or rich…) some security guards and maybe even some security cameras. We won't feel secure when we leave the house, fearing that our lifesavings would be lost to a professional burglar. If this is not enough, imagine that our safe and security system could suddenly malfunction and all our money would just disappear.

Today, most of us store our information, which is one of our most expensive assets, at our home or at our offices, guarded by unskilled IT staff, on simple, unreliable hardware, or rather on expensive sophisticated hardware which has to go through a costly upgrade every couple of months. This same hardware is usually used by our staff as their own personal desktop and for their pastime net surfing dock, putting it in a condition of constant vulnerability.

As we deposit our money in a bank, why not deposit our software and information using cloud computing?

  • Cloud computing supplies a solution all small and medium businesses should take into consideration.
  • Cloud computing offers a professional "security team" to safeguard your software and valuable documents from computer malfunction.
  • Cloud computing offers an ever updating hardware "safe" – no need to deal with updating the hardware or purchasing super expensive hardware in large quantities. All your data and software is stored at the cloud database. You don’t need more than a simple computer with an internet connection. This makes cloud computing eco-friendly as well, saving the need for constant renovation of all the company's hardware. 
  • You can withdraw your "cash" from anywhere – your information is stored on the cloud database, available at your choice from anywhere in the world, anytime.

Our major obstacle in using cloud computing may be our somewhat justified fear of putting our valuables at another's nest.

In the 13th century the Templar knights revolutionized the concept of banking, spreading it across Europe as a safe method to transfer money, protecting against the infestation of highway robbers (who were somewhat less romantic than Robin Hood). There is no doubt they had to work hard in order to convince people it's safe to deposit their money, but their reliability and reputation made it possible.

Today, Cloud computing is starting the same revolution in the world of cyberspace. In time, our fear of trusting others to safeguard our data will disappear in light of the obvious advantages.    

 

A new Software Development book from Jose Rolando Guay Paz

 

In recent months our Sr. Web Developer Jose Rolando Guay Paz has been busy. Not only he has been working tirelessly on our projects and delivering great results, he also wrote his first book.

The Book, Pro Telerik ASP.NET and Silverlight Controls, provides a complete guide to implementing Telerik’s range of ASP.NET and Silverlight controls.

Telerik controls are invaluable for ASP.NET and Silverlight developers because they provide a vast array of rich controls targeted for the presentation layer of web applications. Telerik offers you solutions for the reports, grids, charts, and text-editing controls that you need but don’t want to build from scratch yourself—the options are endless for increasing the functionality of any of your web solutions.

Who this book is for

This book is aimed at .NET developers working with ASP.NET and Silverlight who want to take advantage of the prewritten controls that Telerik provides when developing their software. No prior knowledge of Telerik controls is required, but a working knowledge of ASP.NET and Silverlight is assumed.


describe the image

Click to receive an exculsive 25% coupon for the eBook version of Telerik ASP.NET and Silverlight Controls

Windows Azure - The Basics

 

Windows Azure Logo

What is Windows Azure?

Windows Azure is an application platform in the cloud that allows application to be hosted on the Microsoft data centers. Basically, Windows Azure lets organizations to boost and scale their computing resources that they could have at their disposal.

What is it for me?

As with most cloud computing platforms, the main advantage is flexibility and cost. On the flexibility side, hosting your custom application on the cloud makes it easier for the businesses to scale their computing needs up and down than having the infrastructure on-site.

On the cost side, there are obvious potential for savings from running application on someone's else server. The savings could be from the energy bill to the hardware to the cost of labor.

What can Windows Azure can used for?

Developers can build custom software application using the .NET Services, test and debug them using Visual Studio which integrates with the Windows Azure platform. Windows Azure could also be used with SQL Azure Services and can be used to store databases and information


What are the benefits?

  • Agility:  Azure allows you to take advantage of development tools, automated service management and global datacenter presence to respond faster and focus on your competitive differentiators.
  • Efficiency: The Windows Azure platform allows to improves productivity and increases operational efficiency by lowering upfront capital costs.
  • Simplicity: Windows Azure allows you to utilize the existing skills of your development team in familiar languages such as .NET and PHP to create and manage web applications and services, whether in the cloud or on premises.

What is the cost?

Windows Azure has different payment plans. From consumption based pricing to monthly fixed. More information can be found here.

 

FREE DOWNLOAD: Introducing Windows Azure

  • Using computers in the cloud can make lots of sense. Rather than buying and maintaining your own machines, why not exploit the acres of Internet-accessible servers on offer today?
  • Learn about the Windows Azure platform in this white paper.

The Big Easy 4.1 - getting a rebate on Microsoft software purchases

 

The Big Easy Logo 

Looking to boost sales in the final month of its fiscal year, Microsoft has brought back The Big Easy program for the month of June. 

The Big Easy Offer 4.1 is a promotion paying partner subsidy funds to customers who purchase one or more qualifying Microsoft products. When you make a qualifying purchase from multiple product groups, they can increase the partner subsidy funds they earn to assist with deployment of the solution . The Big Easy Offer 4.1 is intended to encourage organizations to take a solution-oriented approach to their Microsoft software purchases.

The structure of the offer is largely the same as it was for 4.0 this year, 3.0 in 2009 and earlier versions of the promotion, which was designed to combine several partner subsidy promotions to make it easier for partners and customers to understand and use.

One thing that is new in the product list is the inclusion of Microsoft Office 2010 into the offer.

By using this calculator you can find how much would be your refund from Microsoft. 

 

The qualifiying products are listed below:

Microsoft® Office   Microsoft® SQL Server®
Microsoft® Exchange Server   Microsoft® Office Project
Microsoft® Office Communications Server   Microsoft® Expression®
Microsoft® Office SharePoint® Server   Microsoft® Visual Studio®
Microsoft® ForefrontTM   Microsoft® Office Visio®
Microsoft® Windows Server®   Microsoft® System Center Essentials
Microsoft® Windows Server® 2008 Datacenter   Microsoft® System Center Configuration Manager
Microsoft® Windows® Small Business Server   Microsoft® Dynamics® CRM
Microsoft® Windows® Web Server 2008   Microsoft® Windows® Essential Business Ser


 

Should I start using HTML5? What about Silverlight and Flash?

 
In the last couple of years the interest in HTML5 has dramatically increased. This new technology not only brings some interesting built-in capabilities to the native html, but also proposes innovative JavaScript APIs that expands the scope of web-based applications. Multimedia, interactivity, and interoperability, while offering a more robust language structure, are some key features of HTML5. Major browsers including Opera, Safari, Firefox, and Chrome have already started to partially support HTML5, and the next version of Internet Explorer (version 9) will also support the language. In the new HTML5, playing audio, video, drawing, animating, connecting to services, etc. will be inherent to the platform, raising some questions about the future of RIAs such as Silverlight and Flash.

 

Will HTML5 kill RIAs in the near future?

Not so fast. Based on the WHATWG, HTML5 will reach Candidate Recommendation stage during 2012, and Recommendation stage during 2022. However, there are some features available now that the browsers mentioned above have started to implement. The problem is that even though HTML5 is standard, not all browsers are implementing it the same way, making 100% cross-browser compatibility very unlikely (at least for the next few years). Furthermore, the specs for HTML5 are still being written, which makes it very risky at this point to rely solely on this framework to write advanced web applications. Google's Native Client project is an effort to create an open-source SDK that runs native code in web applications using HTML5 as platform. It has great potential but it is still very experimental, and like any other RIA, it also requires a plug-in installation.

HTML5 is definitely a huge improvement from HTML4, and it will eventually become the new standard for html. However, it wouldn't be realistic to expect for this platform to oust RIAs such as Silverlight or Flash, at least not anytime soon. RIAs have the capability to evolve very quickly, and all we need to do is installing or upgrading a plug-in in our browsers. Also, from the web application development standpoint, there are already many 3rd party powerful tools and controls widely used by developers, e.g., Telerik Rad Controls for Silverlight that help increasing productivity and performance.

 

What about using HTML5 to develop mobile applications?

One thing that has generated considerable interested in HTML5 for the mobile market is that Apple has banned RIAs from its mobile devices and adopted open standards such as HTML5, CSS, and JavaScript (here is what Steve Jobs thinks about Flash). Since the iPhone's market share is about 25% of the smart phone platform, people are starting to reconsider using RIAs for the mobile version of their websites, and it is very likely that HTML5 will pick up quickly in this area. Google is also pushing for a full adoption of HTML5 in mobile devices, betting for the complete extinction of native applications (e.g., those found in the iPhone's App Store).

However, there are some limitations in using HTML5 for mobile applications, specifically, if they need to access hardware resources (e.g., accelerometer, camera, mic, etc.). The current APIs and HTML5 are only partially implemented, and having a unique cross-platform language for all the devices in the market is still a dream.

 

Conclusion: HTML5 is a new technology still under development that will increase dramatically the native HTML capabilities. For business and corporate sectors, it would be too premature and risky adopting this incomplete platform any time soon. Using the advantages of powerful RIAs will probably be more feasible to produce faster and more effective results. Even when HTML5 becomes the new html standard, it won't necessarily mean that it will kill RIAs and native applications in mobile or other platforms. They are more likely to co-exist and complement each other. By the time HTML5 has officially established, the answer to which technology to choose will ultimately be determined by the application's requirements, target, long term support, scalability, and the same other factors that are taken in consideration today for our decision making process.

All Posts