Play Store – the platform that sees both high app count and users time is also the house of the highest uninstallation rate and user abandonment rate.

Businesses, who enter the market with the hope of getting all the different attached benefits that Android market offers, most often than not, fail to avail them and find themselves in the well of uninstalled applications or even worse, apps that are never opened again after one experience.

This strikingly new place (at the downhill) that businesses now find themselves in is usually the doing of a series of mistakes that Android app developers face when devising the mobile apps. Something that can easily be avoided upon investment into a sound Android app development company that knows what it is doing.

In this article, we are going to look into some mistakes that have to be avoided at all costs while Android app development to ensure that the apps offer the anticipated returns in the expected time. Knowing what these are will not just help you in becoming a better name in the wide Android market but will also help you offer a lot better experience to the end users.

Let us look at what those to-be-avoided mistakes are:

1- Copying the iOS Version of the App

One of the biggest mistakes that an Android designer and developer can make is copying the iOS version design and then coding it in. Something that happens more frequently than we would like in the name of fast development time and expedited launch.

Developers forget that the whole interface and the experience that Apple gives is very different from what Android is able to offer. The presumably small things like button placement and pop-up designs often combine themselves to become the reason behind giving the users a feeling that the app that they are using is not Native on a particular level.

2- Device and OS Compatibility

The next mistake that Android developers make is not expanding their umbrella of Android devices and OS that the app will go live on. They often restrict themselves on a few specific devices which they think are most used in the market (same with the OS version) and don’t prepare the application for other platforms or OSs.

The application should, at all costs, be responsive to some level of variation in flexible interface and features which adapts a specific screen configuration. Although it might seem like a very daunting process, following the guidelines passed by Android development manuals helps in achieving this to a great extent. A dynamic framework of the Android app enables you to offer configuration-specific files which get loaded on the basis of the present device’s configurations.

3- Main Thread Blocking

Whenever an app is launched on the Android Operating System a new Linus process begins with a single execution thread. It means that the applications all run in one thread, known as the main thread.

Now, when the developers accidentally block this main thread, a rough user interface happens which have a dire impact on the app’s complete responsiveness. In order to avoid this from happening, developers should make use of the main UI thread for making network calls, loading bitmap, reading and writing SD, processing of the image, and querying of the database.

4- Using Codes for Something that is Already There

Chances are that all the different things that you want to do – image loading, network calls, access to the database, and even social login can be done with the help of APIs.

There is a very high probability that all the time that you have been spending in writing long lines of codes to avail a specific task could be solved in less than half the time, through an API. So, before you start writing the codes, first search and see if there exists an API that can do the job in exactly that much efficiency and less than half the time.

So, here were the four mistakes that Android app developers make during the extensive process. Mistakes that can have a negative impact on not just your app but also your business as a whole, taking down with itself the profit and fame.

Difference between native and hybrid apps

The main difference between native and hybrid apps is that the first ones are developed for a specific platform like iOS or Android. On the contrary, hybrid apps are cross-platform and have one code base. They cover multiple platforms.

Now, a few words about tech differences. Native apps are created with the help of programming languages – Java and Kotlin for Android and Objective-C or Swift for iOS. While hybrid apps are built with the help of JavaScript, HTML&CSS that are web technologies.

Simply put, hybrid apps are websites that look and function like native apps. They both can be distributed via Google Play and App Store.

So it’s a bit hard to define which app is hybrid and which is native, isn’t it? Still, there are some hints. When it comes to cross-platform app building, devs use the web technologies we’ve mentioned previously and also non-web ones like .NET-oriented. It’s possible due to hybrid app frameworks (e.g. Xamarin and Ionic) and gives developers more power.

So, what do we have? Native apps are built for one platform, and hybrid apps run across multiple platforms. At the core, they’re websites put into app’s shell. Believe it or not, Uber, Instagram, and Twitter are actually hybrid apps. Fantastic.

Hybrid apps benefits and drawbacks

Prior to creating a hybrid app, you should know all their pros and cons. First of all, mind that to access native features, hybrid products have to use APIs. So their abilities are limited.

Hybrid apps are a good fit when you’re focused on the content. But if you need something more sophisticated, it may be a pure waste of time and money. Here’s our short review of what you should know prior to choosing hybrid app development.

Main benefits of hybrid applications include:

Cross-platform capabilities. These apps run on both Android and iOS as they have one code base. So you don’t need to choose which platform goes first. It’s also a good choice when you need to increase brand awareness and hit as many users as possible.

Faster delivery. It takes a lot of time to create a native app. And if you’re eager to use the product as soon as possible, stop on hybrid version. Devs don’t have to create a code base for each platform which reduces the overall development time. By the way, QA engineers need less time to check a hybrid app too.

Easier to make changes. Devs don’t have to work with each platform specifically to replace or change some elements. It’s enough to make changes once and they will be applied across all the platforms.

Reduced building cost. It’s same code base again. Hybrid apps delivery takes as much time as building one app for iOS or Android platforms. And hybrid applications run on both!

In order to get a full picture of hybrid development, let’s review the main cons of such apps:

Internet connection. Hybrid apps require non-stop internet connection to work. In addition, it takes more time for hybrid applications to load so they run slower compared to native apps.

Limited capabilities. Hybrid apps rely on plugins to access the built-in device features. However, these plugins can be out of date or unreliable. And if there’re no ready-made solutions that help you access a certain feature, developers will have to create it from scratch.

Poor UX. User experience is one thing that should be of a high level no matter what product you create. Unfortunately, UX in hybrid apps leaves much to be desired. Developers focus on something in the middle of iOS and Android versions to please users of both platforms.

Need for native app developers. That’s right – you may need native app devs to build a hybrid application. The approach accepted during hybrid app delivery can’t solve all the functional problems that are basic for native building. Thus, you may need to hire a native developer to create a top-rated product.

Pros and cons of native apps

Native apps are developed for a specific OS. Developers align the UX within the operating system and stick to guidelines during its delivery. So let’s take a look at the advantages and downfalls of native apps.

Advantages of native apps include:

Great user experience. While working on a native application, developers tailor the app’s functionality to one platform. It allows them to create a more intuitive interface and understand app functionality better.

Top performance. The app created for a specific platform shows a high-performance level. Native apps run fast not only because of optimization but due to the code itself. It’s written in the language natively supported by the platform so it performs faster.

Security means. The only way to guarantee your users’ data protection is to deliver a native app. In this case, the full power of hardware is engaged to process tasks.

Full-fledged functionality. Here comes another reason why native apps are better. Mind that they have full access to databases and hardware features of a device. Their functionality can’t be limited to plugins or any third-party tools. And there’s no need to consider the peculiarities of several operating systems at once.

Personalization. Due to fragmentation, adjusting the layout for different devices becomes way too complex. Especially when it comes to Android-based devices. With native apps, you can keep the design at a high level and implement great UX.

Finally, let’s check the flip side of the coin, the disadvantages:

Development cost. Native app building is a complex process that requires more experienced developers to work on it. And their services won’t be cheap.

…and time. Time is money again, and more time is needed to deliver a native app. If you need the product to be released on both App Store and Google Play, native apps may not be the best choice.

Which option is best?

Hybrid apps work great when you’re dealing with simple and content-oriented projects. They will be your perfect choice if you’re on a tight budget or have little time. By the way, you can also build a hybrid app you want to test your product without significant spendings.

But if you’re aimed at adding custom features, top performance, and good design, then native app development is what you actually need.I hope that this short guide helped you to find out what option works better for your project. Still, I always mention that it’s better to contact an experienced app development team to be sure. They will check your objectives and find the best way to bring the project to live. Good luck with building your perfect application!

Today every person whether from a technical background or not is aware of Artificial Intelligence.

It has been a hot topic of discussion for a few years now. It would not be a mistake to state that Artificial Intelligence is everywhere on this globe & impacting day-to-day life in a positive way.

Artificial Intelligence is changing the way humans are interacting with devices in the contemporary world. This is the reason why every software development company is focusing on artificial intelligence.

In a review study by Boston Consulting Group and MIT Sloan Management, it was found out that 84% of respondents say that Artificial Intelligence will enable them to obtain or sustain a competitive advantage over other software development companies.

They have calculated findings of many other parameters as well. Below is an image of the findings of the same study:

It is true that this technology has been welcomed over the years by many enterprises in web developmentas well as other sectors with open arms.

There are some challenges also to adopt this technology. For example, the huge costs involved in its projects restrains software development companiesto plan a full-fledged strategic idea about it. Here is an image of the findings of the same study which shows that not many companies have invested in artificial technology.

According to the above graphical representation, maximum companies have not adopted artificial intelligence projects yet. Only 5% have extensively incorporated in processes and offerings.

The huge cost encourages only the web development companies with well-planned strategies to introduce software that can think with the same intelligence as humans. Software developersare working to provide optimum comfort in humans’ life.

The contemporary age is the time when we carry a supercomputer in our pockets as a mobile device. The companies involved in mobile developmentare using brilliant innovations to incorporate artificial intelligence.

The maximum support of this new technology in mobile application development is important to revolutionize the whole society. This is because today we are all carrying a smartphone in our hands.

Below is a graphical representation of research done by Statista. It shows an estimation that the number of mobile users will reach to 4.78 billion by 2020. This is a huge number which motivates mobile app developersto inculcate AI in their idea to deliver maximum output.

The constant craving to attain greater comfort by humans has given rise to contributions of AI in almost every field. Mobile application development is a no different sector. Here are some effects of artificial intelligence on mobile application development:

Camera detectionAccelerometersGyroscopesFace recognition

Let’s discuss these effects in a detailed way:

Camera detection:

Does your camera detect your face while capturing a picture? Probably, yes! It even blurs the things that are out of focus. Have you ever wondered how does it do this? It is possible because android app developers are constantly doing research and development.

We have come to an age when smartphones have such a camera installed that has sensors working to detect the object that has to be highlighted. There are various beauty and filter applications as well that works on your phone in a similar manner.

The image below shows how AI helps the cameras in smartphones to detect the object of focus brilliantly.

Have you ever used apps like IKEA, SnapChat, google translate? These apps allow customers to have a glimpse of after purchase experience. They are using artificial intelligence to detect foods, landscapes, faces etc.

Accelerometers:

Gone are those days when we had to purchase separate wearables to track our fitness. In the contemporary digitalized age, mobile application development companieshave introduced specific apps for this purpose.

These apps work by sensing the motion of your smartphone along with you. This helps them in detecting the number of steps you have taken. They can be termed as accelerometers that track your acceleration.

Below is an image that shows the findings by research on the usage of fitness apps worldwide. These apps are mostly depended on the working of accelerometers and show the popularity of this technology.

There are various other features like microscopic crystal structures that can be used while driving. Moreover, they can be used for detecting earthquakes, vibrations etc. These applications have taken the mobile technology to another level.

Gyroscopes:

The gyroscope in mobile phones works hand in hand with the accelerometer. It is an additional sensor that works on earth’s gravity. It detects the tilts, twists, and turns. It is added by software development companies to measure the angular rotational velocity. Are you fond of playing mobile games? In research by Statista, it estimated the global mobile revenue for smartphones and tablets from the year 2017 to 2021. Here is the graphical representation of their study:

Gaming interests all age groups, we are sure you must have played too! Have you ever wondered how your phone detects your tilts while playing a racing game? While you tilt your screen to steer, it is the gyroscope which detects that movement.

Face recognition:

Here comes a smarter way to authenticate your identity. The new feature introduced in smartphones is a step towards making mobiles more smarter. By just looking at your face, your phone will be unlocked.

This technique is marvelous as it records even the facial movements while carrying on the detection process. The face IDs have evolved in recent years remarkably. Today, devices have come that accurately captures your face.

It has been added by several mobile developersworldwide in the latest mobile phones that are introduced in the market. Although, the fingerprints unlocking system still remains the most popular and trusted one.

Final words:

The effects of artificial intelligence discussed above are just a glimpse that could be covered in this post. There are various other features that have been introduced by web developing companies in the new generation of mobile phones.

It will not be an understatement to say that artificial intelligence has introduced some drastic changes in mobile application development. The added features have changed the smartphones usage to a great extent.

Don’t get confused. The two has a lot of differences. But they’re quite simple to understand.

Mobile websites are browser-based, which means you can access them through the internet without installing an application. They can work just like usual websites on your computer. However, some websites automatically adjust to different devices with additional features specially designed for mobile solutions.

Mobile applications, on the other hand, are apps that can be downloaded or installed in your phone or tablets usually through Google Play or Apple Store. They can also be accessed through the internet and download information, which are stored in the phone memory. Many mobile apps don’t require an internet connection to function because the data and information have already been downloaded inside the app.

In this article, we are going to compare mobile websites and mobile solutions. Let’s dig deeper on how they can each platform be advantageous in terms of functionality, features, and other factors that affect the overall success of an e-commerce business.

A- Mobile Applications

Advantages of Mobile Applications

1- Faster than Mobile Websites

Have you ever experienced when your browser keeps on loading? Having such a slow internet connection is frustrating. But don’t judge too quickly. Maybe the culprit is the mobile website itself. People prefer to use mobile applications because they are faster and more efficient. They are specially designed to perform specific tasks, unlike mobile websites that can function as a browser to access different internet sites.

2- Provides Better User Experience

Mobile apps have higher functionality and user-friendly features as compared to mobile websites. App developers are continually working to improve their app solutions, which is why mobile applications are becoming more intuitive and advanced.

3- Specialized Features for Devices

More and more apps are being integrated with high-tech devices. The internet of things, for example, connect smart devices to streamline complicated tasks.

Tech-companies are working with app developers to maximize the capabilities of their devices and increase their sales. Point of sale systems, trackers, camera devices, and radio frequency identifications are used to help the e-commerce business flourish.

4- More Time Spent in Mobile Apps

Mobile apps are taking over the world. Users are spending more hours on mobile apps rather than browsing the internet through mobile websites. This is a good indicator that creating a mobile app is the best option when creating an e-commerce website.

A report from reputable sources shows that the number of people using mobile applications has been exponentially increasing by 6% every year, especially in fields of business such as e-commerce and retail.

5- Offers Accessibility Without Internet

The internet will not always be there to help you. But your mobile app will. Most mobile apps can still be operated without an internet connection because they are installed in your devices. This feature allows you to continue working and accomplish minor tasks until the internet comes back.

Disadvantages of Mobile Applications

1- Requires More Time and Expenses

Apps could be hard to develop for your e-commerce business – and more expensive too! The process is complicated. It means building apps compatible with both Android and IOS, which could mean hiring two separate developer teams for each platform. More cost and more time!

2- Comes with a Complicated Process

It’s more complicated than you think. It doesn’t stop with hiring talented developers. There are also lots of things to consider more than just a well-planned development. You have to make many crucial decisions which can affect the entire operation of your business in the long run. Without technical expertise, you would have to rely on your team and hope that it will turn out just okay.

3- Problems in the Maintenance Process

You have to consider the future problems that may arise due to the changing needs of the people. Don’t forget about the trends and issues that may come along as you go forth with your business. App support is also essential. Daily maintenance should be considered to avoid losing customers. Otherwise, your client may look for better platforms.

B- Mobile Websites

Advantages of Mobile Websites

1- Accessible to All Devices

Mobile websites accessed through any device as long as there is an internet browser. Compatibility will not be a problem, giving your business a broader grasp among your customers. It doesn’t matter whether it’s Android or Apple. They don’t even need to download anything, just a good Wi-Fi connection, and they’re good to go.

2- Search Engine Optimization

If you want to boost your business significantly, Google ranking is your best bet. Creating a website platform for your e-commerce business will allow you to formulate SEO strategies that can increase your traffic significantly, which is currently considered as the best way to promote a brand.

3- Cost-Effectiveness

Unlike app development, it’s relatively easier and faster to create websites. It requires less work and complicated technical stuff. In short, mobile web development requires fewer expenses and less effort, giving you more time to focus on other important matters in your e-commerce business.

Disadvantages of Mobile Websites

1- Without Offline Accessibility

You probably already know this already, but it’s still worth mentioning. What if your customers want to browse their cart or wish list? They can’t do that in a mobile web version of your site, and that’s an automatic turn off for your customers.

2- Turtle-Like Loading Speed

This is arguably the weakest part of mobile web solutions, especially for online shops. It hampers the performance and potential of the business just because the interface is inconvenient to use. Those pesky little buttons, zooming in and zooming out, tiny texts, and almost everything about it makes customers press the exit button with relief.

3- Maintenance and Maintenance

Websites also need to be maintained daily. Most website owners hire skilled and knowledgeable programmers who can do the job for them. Also, contents for the website will also cost a lot, especially if you are aiming to improve your SEO.

4- Not-Too-Friendly Interface

We all know this. It’s the reason why most users prefer to use mobile apps rather than browsing the web to use their favorite platforms. A mobile website doesn’t usually adjust its interface based on the device, leading to the poor user experience.

Conclusion

There you go! The answer should be evident by now. There are a lot of opportunities in the e-commerce business, considering the pace of technological advancement nowadays.

You can quickly gain momentum once you launch a successful marketing strategy for your business. It’s easy to increase your traffic when you use the power of the internet. Many marketing options are being offered in the market.

But no matter what option you might choose, the key factor will remain. You have to plan carefully and consider your situation. Gather as much information as possible to formulate the right strategy on how you can increase your sales without spending too much time, money, and effort.

In this article, we are going to talk about building Single page applications using AngularJS.

Let us first discuss the concept of Single Page Application. The visitors on websites are not patient enough now. They want everything to work speedily. They are willing to waste their time on a website that loads slowly. So there are many ways you can use in order to improve the loading speed of your website. Most companies are now opting for single page web application to speed up the site loading and also improve the overall user experience.

What are single page applications?

A Single Page Application or SPA is a type of website or web application which that can dynamically reload particular page elements depending on the interactions of the users. It helps in avoiding the loading of new pages from a specific server. This is what helps in enhancing the speed and overall user experience. SPA try to offer the same kind of experience as a desktop application. Some of the most popular single page applications users include WhatsApp Web, Flickr, Gmail etc.

Important Features of single-page applications

If you don’t have enough exposure on how to develop single page web applications using AngularJS, you will, first of all, have to get used to some of the most important features of a Single Page Application. The page is not exactly made to refresh or reload. In place of that, it simply adjusts itself according to the requests of the user. It then performs accordingly.

Let’s take a look at some of the critical features of a Single Page Application. This will be really helpful for you if you are planning to learn about single page web application development.

Well-organized Routing

An efficient SPA must be able to track the current state and location of a user. It should be done during the process of navigation using JavaScript routers. This can either be done by the HTML5 History API usage or by using the Hashtag technique.

No Round Trips on the Server Side

A strong SPA must be capable of restructuring any portion of the User Interface. It should be done without the need of an entire server-side trip in order to recover an HTML page. This is usually achieved with the help of a Separation of Concerns design theory. It is a theory that implies the segregation of data from the presentation of data.

Flexibility and Performance

A well-functioning SPA must be able to transmit the entire UI to the client. It is said to be efficient for the overall network performance. When you increase the execution from the client side and then reduce the offline processing, the UI will have an effect on the entire network. The highlight of this feature is the flexibility it offers to the UI. It allows the developer to rewrite the application front end without even once disturbing the server.

What is AngularJS?

AngularJS is a powerful JavaScript-based framework. The official definition goes as mentioned below:

“AngularJS is a structural framework for dynamic web apps. It lets you use HTML as your template language and lets you extend HTML’s syntax to express your application’s components clearly and succinctly. AngularJS’s data binding and dependency injection eliminate much of the code you would otherwise have to write. Moreover, it all happens within the browser, making it an ideal partner with any server technology.”

While using AngularJS, the developers are given an opportunity to write client-side applications. It can be done with the help of JavaScript in the MVC format. These applications are made to work across multiple browsers. AngularJS is used for creating web applications which offer great performance and are also easy to maintain.

Core features of AngularJS

Data Binding: The automatic integration of data between the view elements and the model.

Scopes: This works as lubrication between controller and view.

Controllers: A JavaScript function that links to a specific Scope is a controller.

Services: The services feature helps in arranging and sharing code through the application.

Templates: Templates includes attributes and elements that belong to the AngularJS family.

Directives: Directives serve as markers for DOM elements including attributes, CSS, and the like.

Why you must build Single page applications with the help of AngularJS?

1. Quick Performance

When you develop a SPA with AngularJS framework it loads quickly. The component router delivers automatic splitting of codes which makes it possible.

2. Cross-Platform Compliant

An AngularJS framework allows a SPA to work on every platform.

3. Support for UI

When you develop SPAs using AngularJS, it offers an excellent user experience.

4. Easy to Maintain

If you prefer AngularJS for developing a SPA, the maintenance would be much easier in the future.

5. Offers Flexibility

The development of SPAs becomes easier, once you are used to AngularJS. You can build animation timelines and complicated choreographies, using AngularJS framework. It can be done by making use of the minimum number of codes. So you can develop interactive and user-friendly web applications that offer amazing flexibility.

Conclusion.

AngularJS is a really great option for building SPA applications because of the number of features that make the entire process possible. In the near future, we will witness a lot of website building that is being dynamically powered by JavaScript. AngularJS has the capability of handling the development of web applications, right from wireframing to development and testing. If you are looking to build a single page web application and you are not sure how to make use of AngularJS properly, you can either hire an AngularJS developer or get in touch with an AngularJS development company for getting more information on this.

If you are an IT professional, you can understand that there’s no fix working hours for us.

Our sleeping, eating, and personal time is scheduled by the server we use. Thanks to the giant cloud service providers who manage most of the things for us. But they don’t have access to our project or our server. We need to run scripts, deploy, manage many things using the SSH terminal.

Everything is smooth till the time we are in the office. But what if you are traveling and suddenly receive a message that your project needs to be restarted on the cloud server. This is the time you need an excellent SSH Terminal app on your iPhone to remotely issue commands and get things back to normal. To help you get started, we have prepared a comprehensive list of best SSH terminal apps for iPhone. Have a look at it.

5 Best SSH Terminal Apps for iPhone

#1 Terminus

This wins the race considering every factor. Clean user-interface, manage your host efficiently, secure, and no advertisements. It supports SSH, MOSH, and also Telnet; no matter what your requirement is, this app has it all. You can create groups to manage shared settings and themes.

The best part is the ability to tag servers. I find it extremely useful as big projects have different servers with different IP addresses, and over time it becomes hard to remember which server does what. Tag your servers as Staging, Production, Deployment, etc. and organize things neatly. Lastly, the keyboard is full-featured same as PC or Laptop.

#2 Blink

You should command your terminal, not navigate it. This is the base principle of the app. Using Chromium Hterm, rendering is high-speed compared to other apps. This one isn’t free; though the features justify the price correctly. Other features include custom fonts, custom themes, always on, and full keyboard support.

After trying the app for a while, I can say this is one of the best apps on the list. If you are a sysadmin or network engineer, this is a must-have app on your iPhone or iPad.

#3 iTerminal

If you don’t need an advanced SSH terminal, then iTerminal is perfect. It doesn’t boast any fancy themes, custom fonts, or full keyboard support. It has a basic design that let you issue quick commands on your server. I find it handy when the time is more important than features.

It saves credentials; next time when you open the app, tap on Connect and get started. It is a free app and solves the basic requirement easily. Definitely worth trying.

#4 Shelly – SSH Client

Shelly features a neat and clean user-interface with simple navigation even for newbies. It offers custom fonts, themes, and also customizing keyboard the way you need. This helps when you have to work in a terminal for a long time, and there’s no way you can get on your PC. Other features include copying text the same as you do on your iPhone with other apps, open links directly in the browser, gesture controls, and much more.

Given the features and reliability, the app does cost some money. But it is incredibly cost-effective given the features it offers.

The impressive part is that you can open multiple screens, allowing you to do more on the small screen. Access various servers at the same time without the need to exit any. The app costs some money, but it allows so much that it is worth it.

Nothing can beat the bigger screen when it comes to working on servers. But these powerful apps with almost all the features that we use on a PC or Laptop make our lives easy while we are on the go. With that said, I am signing off. Do share your feedback in the comments if you think any other app should be on this list.

Among the millions of apps across app stores of different platforms only a few enjoy financial stability and actually are run like a serious business.

A recent report by Gartner makes this known truth even more explicit for our knowledge. Only 1 percent of all the mobile apps are actually successful as far as business revenue and stability is concerned. This alarming fact may be disheartening enough for you but nevertheless, it can surely make you understand some serious factors concerning the success of mobile apps as a business.

Those days are gone when mobile apps used to be taken as lightly as a special endeavor. Now with staggering development cost and gruesome marketing maneuvers you just cannot afford to consider apps without a specific business and financial goal. While most apps remain unsuccessful and a select few get overwhelming success one can take this as a serious opportunity as well. There must be some sure and already time tested formulas that make some apps join this sleek lane of success and stability.

Let us decipher and analyze some ways that have the potential to make your app successful.

1. Platforms

These two are the foremost considerations for analyzing the factors related to the success of few apps and literally overwhelming failure of most apps. As a platform, iOS is still ahead in respect of greater presence of revenue earning apps followed by mobile browsers and Android respectively. Though among the first three, the gap is closing at rapid speed. Windows phone and Blackberry still offers a little scope for making apps survive on the revenue earned from these platforms alone. A cross platform development approach with focus on native and device specific user experience is still the winner compared to expensive native development or so called one-for-all cross platform development.

2. Distribution and marketing of apps

More than 99% apps lack a proper distribution and marketing strategy and as a result they just do not reach their target audience. If your audience just does not know your app how can they show interest in it, better still download it? You cannot get a million downloads overnight or within just a month. You need to work for it well in advance. Most apps do the mistake of undertaking marketing maneuvers at the time of launching the app and naturally after months of their launch they struggle to cut deeper in audience response. On the other hand, most successful apps run their marketing campaign with a goal to build up expectation from their target audience well before the launch date and so when the app is actually launched in app store it immediately gets considerable viewers and downloads. Press and media release gearing towards the app launch is a good marketing strategy. Creating content in social media, influential review blogs and guest posts is another strategy that garners huge success.

3. Categories of apps

Obviously, some broader categories of apps make far better business than others. Though you cannot always change your deliverable focus as per this factor it is worth considering for measuring the chances of various app categories. Enterprise apps, business and productivity apps enjoy the highest revenue followed by other categories. In the second tier health, fitness, communication, and social networking apps enjoy greater earning than other app categories. These first 4 or 5 categories together consist of the most successful and financially thriving apps across the app stores. With other positive factors boosting the chances of your app category cannot be a major concern, but still, some categories enjoy better revenue earning potential than others.

4. Engagement and retention

This obviously depends on how better you have distributed your app and garnered response from audience. Once your app slowly reaches certain level of downloads and user base getting feedback from users and engagement with them will further add more value to the app and help you retain your user base over a long time. There are some important factors to observe on a regular basis. For instance, pay attention to the number of people using your app on a regular basis and the percentage of users who after using the app a few times just did not open it for a long time. Remember, in app universe most apps that are not visited or used frequently run the risk of getting deleted and losing users. Getting the user attention on a continuous basis is the key to your success in retaining users and growth.

There are other important aspects to observe in this regard as well. With the Flurry Analytics tool, you can easily see the parts of your app that are used most. This type of analysis would further let you see the typical user behavior and the way they expect the app to get better or user friendly. If there is any scope of introducing a new feature or app content is lurking behind the surface it can be observed and analyzed with tools like this. In an ever changing mobile environment, the user preference cannot be static and naturally every time you have to look out for new scopes of developing the app to address emerging user needs and choices. This continuous feedback and engagement is the key to retain your existing users and expand the user base at rapid speed. This has been a persistent success factor for almost all the major successful apps till date and you cannot afford to ignore it.

5. In-app tactics that pay in the long run

If you have several apps under one roof, promoting each other in a contextual manner becomes easier. Otherwise partnering with well known apps with related niche can also pay you great result. To conclude we must refer to some successful in-app tactics that can help you build revenue or downloads in quicktime. Incorporating app discovery links within the app content and usage pattern is a great way to promote another app and garner downloads. For instance within an education app, you can easily create a user link to another student friendly productivity or notebook app. Utilizing and analyzing the user data you can further customized promotion of app for respective users.

Bottom Line

In spite of huge growth in the use of mobile apps for most apps the competition is continuing to get tougher every day. Naturally, without stringent and methodical focus on growth, retention and user preference an app does not stand a chance of getting enough revenue to sustain as a business. The above mentioned tactics decided upon the common success factors of major apps can help you take sure footed strides in app universe.

This right here is for esthetes only. And, as we all know, pure esthetes exclusively use iPhones. Tobias Reich from Frankfurt is one of those. He runs “Laudable Apps.”

“Laudable Apps” is a collection of the prettiest iPhone apps on the market. Tobias has been curating like crazy since 2012 already. It is obvious that he prefers quality over quantity, as the collection is growing rather slowly. If you want to be informed about new additions, you can follow “Laudable Apps” on Twitter and Facebook, or subscribe to the RSS feed.

Laudable Apps: Simple Stream of Pretty Apps. (Screenshot: Noupe)

Now, “Laudable Apps” has been featured on “ProductHunt,” which flushed the service into my stream of attention. There’s not a lot to say about the small free-time project of its creator. Nonetheless, “Laudable Apps” is one of those pages that you should go through, taking a lot of time and leisure, if you get excited over beautiful apps.

It really does seem like the appearance is the only reason why an app is added to the illustrious circle. Because of that, there are very few similarities between all the gathered apps. They all look great, and they’re all made for the iPhone. The collection can not be sorted. Representative aspects, like categories or ratings, are not included.

Laudable Apps: This is How Apps Are Presented. (Screenshot: Noupe)

All you’ll find is a Tumblr-esque flow of beautiful apps, each of them introduced with two screenshots, as well as a link to the App Store. Maybe, in the future, Tobias will think about a sorting feature. Adding category rankings such as “the prettiest to do app,” for example, would be nice as well.

And no, I don’t believe that Android apps need a similar platform. In comparison to the iPhone app, the average Android app tends to be ugly – exceptions prove the rule.

Saying that one particular type of mobile development (native, cross-platform or hybrid) is the only right way to create mobile apps is similar to saying that only one programming language is the most suitable for coding. As project requirements are always unique, while tools and technologies have different qualities and, what’s more, constantly evolving, nothing can be just black and white.

That’s why, even knowing that hybrid development has a large scope for improvement, we at ScienceSoft keep an eye on its progress and are delighted to see what the Ionic framework can offer developers today.

What’s Ionic?

Used for hybrid development in HTML, CSS, and JavaScript, Ionic allows to quickly create powerful and beautifully designed mobile apps that can be deployed through Cordova. Ionic is built on top of AngularJS and, apart from helping you build a solid app structure with it, uses Angular directives for all its components. As a result, component implementation gets simplified to several lines in HTML.

How Does Ionic improve Cordova Development?

Ionic wraps all Cordova commands and lets you work with any Cordova plugin or additional package. Along with it, you have the following three advantages over Cordova-only development.

1: Slick UI and UX

Ionic is a perfect fit for the easy and fast development of a simple but trendy design with everything you may need already included in the framework kit. At your disposal, there are dozens of templates, over 80 mixins, 700+ standard icons and lots of built-in UI elements such as headers, footer bars, buttons, grid elements and more. This is definitely a better start than the empty app screen you see in Cordova.

You also get all the UI components: lists, navigation, action sheet, pop over, “pull to refresh” as well as other features that you can implement in your app by writing two or three lines of code. What’s more, the code commands are relatively simple and can be easily recognized by developers. You definitely would know what “ion-infinite-scroll” or “ion-refresher” is.

But in case you stumble upon something unclear, Ionic is ready to help you out with its official documentation and active support community.

2: A More Convenient Development Process

The ‘serve’ feature is present in both Ionic and Cordova and allows developers to access an HTTP-server to test the application code in a desktop browser. However, working with ‘cordova-serve’ is rather inconvenient as it doesn’t let you launch the test from your initial www-folder and forces you to create an app build first.

Things are different with ‘ion-serve’. You can edit your code in the app folder and immediately see it altered since the app prototype tab is refreshed automatically after every single change. A similar effect can be achieved with Grunt in Cordova, but unlike the out-of-the-box Ionic feature, it’s far from being perfect.

3: Higher Performance of the Final Product

Compared to Cordova-built apps, the Ionic code creates more powerful and higher performing applications. With jqLite, a fraction of jQuery, it takes a minimal DOM manipulation, and native hardware acceleration is enough. Ionic optimizes animation effects and tunes up the GPU work to achieve the best processing time. Hence, those milliseconds of tap delay that are present in all hybrid apps (due to the bridged gap between the app and the native SDK) are cut in half, and the application gets to perform more vigorously.

Conclusion

Ionic may be referred to as a mere Cordova wrapper, but it actually brings hybrid development to the next level. Besides being a useful tool for creating a beautiful design, it also eases the development process and powers up the application’s performance. If you want to know more about app development on Ionic, feel free to contact ScienceSoft’s mobile application developers.

About the Author

Vadzim Belski is Head of Web Development Department at ScienceSoft, a software development and consulting company headquartered in McKinney, Texas. With over 13 years of experience, he has been taking part in web projects with a primary focus on large-scale IT engagements, such as Viber (an instant messaging and VoIP app with 700 mln active users), Globus VPN Browser and others.

Mobile devices such as smartphones and tablets are still on the rise. An end of that growth is not in sight. On the contrary, more and more users are browsing the internet while on mobile. Therefore, mobile apps have become a necessity for every serious web business and website to have. But, how do you create a mobile app? Sure, you can learn to code, build everything from scratch, spend your time digging into functions and dependencies, you name it. Or you can do things the easier way, save time and effort as well as resources by opting for a tool that lets you build mobile apps within minutes. Meet GoodBarber, a mobile app designer for both iOS and Android platforms.

GoodBarber: Mobile App Development Made Easy

What and How?

GoodBarber is an app builder for iOS and Android devices. In other words, if you need a mobile app for your product or service, GoodBarber is there for you. There are certainly quite a few options when it comes to mobile app builders. So what does GoodBarber do to help it stand out from the crowd? Read on to learn more!

The Backend

To begin with, GoodBarber offers a clutter-free backend that comes with a minimal navigation system and easy editing to work with. You can modify and edit your apps with a few clicks. Updating your app is a matter of a single click.

Furthermore, GoodBarber also provides detailed statistic and usage metrics for your apps. Need to know how many unique sessions of your app have been run so far? Or maybe you wish to track the total number of pageviews over the course of months? Yes, GoodBarber has all of that in its backend, and you need not worry about any other tool for statistics.

But then, what if you do need those other tools? Worry not, because GoodBarber is good enough to let you connect third-party external applications and track the progress of your mobile app. Thus, if you prefer to use e.g. Google Analytics, you can.

GoodBarber also comes with a built-in CMS that lets you handle and manage your content directly from the backend.

You can also sync your content across different platforms, by integrating with other services such as Facebook, Flickr, YouTube, Instagram, and so on. If you have a website that runs on WordPress, GoodBarber has a plugin built especially for you. By making use of such integrations and plugins, you can add pagination to your content within the app or place queries and get answers from the WordPress website, among other things. You also add comments, social sharing and emails, etc.

GoodBarber allows you to add different users to your project and manage user roles much as you would on a WordPress website. You can have accounts for admins, owners, and likewise, each with its fine-grained access rights.

Plus, your end users can log in to the app via social networking profiles, or register via email. Push notifications, much like any other decent mobile app, are a standard feature of any app that you create via GoodBarber.

And lastly, just because you may not need it, doesn’t mean it is totally lacking — GoodBarber also offers a coding section for folks who might want to work on their app directly via the code.

Need Additional Features? Look at the Add-on Library

With GoodBarber it is easy to lift the mobile app above its website counterpart in terms of features. We are talking about mobile devices, so the capabilities of these devices should be used to full extent. To achieve this, GoodBarber offers an add-on library with a large number of different features grouped by interest.

Do you want to implement – say – Geofencing? You can do it. Are you fond of iBeacons? Use them. Do you want to add monetization features? Check the add-on library. It has everything you might need.

And More…

GoodBarber comes with a library of designs that you can choose from when building your mobile apps. It offers over 50 design inspirations, custom typography, as well as different UX layouts. Wanna know how many customization abilities GoodBarber has to offer? We will let this picture do the talking, because after all, a picture is worth a thousand words:

Speaking of images, just in case you need any for your app, do not worry. You can access the complete Unsplash library right from within GoodBarber’s interface. Pick, select, and off you go. Unsplash is Creative Commons Zero, so you will never worry about licences.

Pricing

GoodBarber offers multiple plans to suit your needs. You can opt for the Standard Plan, for 20€ per month, that gives you 5,000 push notifications every month. Or, you can go with the Full Plan at 40€ per month, which gives you 500,000 push notifications per month. Both the plans offer unlimited launches and installs, as well as HTML5 apps for Web and iPhone and Android mobile apps. However, the Full Plan also gives you a built-in CMS, automated notifications, maps, contact forms, Google Analytics, social media statistics as well as support for third-party ad networks.

Just in case you need more, you can go with the Advanced Plan, that costs 60€ per month, and gives you everything included in the Full Plan, along with app support for iPad and tablets. The Advanced Plan relies on adaptive design, which means your app is going to look stunning on both mobile phones and tablets, with no extra effort on your part. Furthermore, the Advanced Plan comes with API access as well.

You can give GoodBarber a full spin on all features with a 30-day free trial, before choosing any of the above plans.

More importantly, GoodBarber also offers a Reseller Plan, that costs 200€ per month. It lets you create unlimited apps, as well as the ability to sell native iOS and Android apps at your own pricing (with no commission involved). You also get to white-label GoodBarber and offer your app building services to your clients.

Verdict

So, is GoodBarber worth the money? Or is it just another of the several app builders out there? In simple words, it is surely worth the investment and a very decent choice for building and publishing mobile apps.

That said, GoodBarber is less of an app builder, and more of an app designer. You do not truly “build” your app using GoodBarber, you “design” it. The customization features that GoodBarber offers are exemplary and can surely not be found anywhere else. There are several app builders out there in the market; but GoodBarber stands apart from the crowd by letting you design your app the way you want it. You can choose what to include, as well as what not to include. And if you need to work with code, you have that as well.

And that is not all. The entire process is so streamlined that you just cannot get confused at any step. You select the layout and design of your app, then choose your content sources, preview the results, and publish your app to iOS and Android app stores. This is it — you can select what design elements you want included, the UX of your app, and a lot more. Plus, for tablets, you can make use of adaptive design features and ensure that your apps run well across different screen sizes and resolutions.

Plus, for anyone looking to start off a decent mobile app building business, GoodBarber’s Reseller Plan is probably the most budget-friendly offering out there. Considering the fact that mobile is a very busy segment and is expected to rise even more in the coming years, mobile app development is a lucrative business. Now, coding apps might not be everyone’s cup of tea, but with the white-label features of GoodBarber, you do not have to worry about code at all.

All said and done; GoodBarber is, by all means, one of the most useful and versatile solutions for creating mobile apps for iOS and Android devices. If you are looking for one such solution, GoodBarber is surely something you should consider.

Today I want to introduce you to Codester. Codester is a brand-new marketplace for developers and designers. Here you can buy code snippets, scripts, themes, plugins and more to brush up your next big or small project. Using premade components saves you time and – as we all know – time is money. So take the five minutes it takes to read the following article.

Codester: a Quick Walkthrough

Script directories were big at the end of the Nineties and the beginning of the new millennium. I remember the most prominent of them, HotScripts.com, well. Whatever task you were looking to accomplish, HotScripts was the place to go. Then they were bought by some professional website buyer and though they still exist today have since gone into a hiatus. Don’t go there. It would destroy your nostalgic memories of days gone by.

I haven’t run across a similar service during the past decade. While there is no shortage when it comes to marketplaces for designers, developers face a different truth. In summer of this year, a small group of people started a solution to this problem. Welcome, Codester.com, a fast-growing worthy successor to the dinosaur I mentioned earlier.

Codester targets designers and developers alike. But all the assets they offer have a development related touch, at least as of now. Take their Graphics section as an example. They provide User Interfaces, Game Assets and Product Mockups alongside Icons and Logos there. This is not a nicey dribbbly design lover’s toy box. This is about getting the job done. Don’t blame them for not having too many offerings right now. They have just started out.

If you really want to get your hands dirty, dig into the Scripts & Code section, where you will find solutions in PHP, JavaScript, Ruby, Python, Java, C, C++, C#, and VB.Net. Today only the PHP category has a namable amount of scripts on offer, but the people behind Codester are actively working to grow the portfolio quickly.

If you are an app developer make sure to visit the respective Mobile Apps section and find yourself the one code snippet for iOS, Android, Unity, Corona or Titanium that you have been searching for the last five nights through.

These days separate scripts are still sought after, yet the greater demand comes from developers in the CMS reign. It is certainly possible to alter any given script to work with any given script. Yet it is more efficient to directly choose a script module, plugin, extension or whatever the naming conventions with your CMS are and get it to work in the environment it was made for.

Codester relates to that and offers a variety of plugins for WordPress, Joomla, Drupal, Magento, Prestashop, osCommerce, X-Cart and Opencart. Themes, though more design-related, mix form and function to ultimately deliver the intended user experience. Thus, it is only consequent that Codester has established a separate section with themes available for WordPress, Magento, Joomla, Drupal, Prestashop, Opencart, Muse, Tumblr and Ghost as well as plain HTML templates for those without a CMS in mind.

Codester: Finding Files

Codester is built with growth in mind. As of now you can indeed just browse the main sections and the categories. There is not a single one that couldn’t be scrolled through in a matter of minutes. Should the growth continue at its current pace, this will entirely change in a matter of a few months. The team has forethought that and built the service in a way that it will still be easy to find the tool you need even with thousands of scripts, themes or whatever to filter.

The most obvious way to search for a solution on Codester is using the top search bar from the landing page. Enter your search phrase and see what Codester comes up with. This is not very efficient, however, should you already be able to narrow down your parameters a little which will most certainly be the case with a typical development project. Codester does not work with additional tags to group related content from different categories in a meaningful way, at least not from the search bar.

So the appropriate way to approach the content is by browsing the categories. Once you entered any given category, its content will be displayed in a grid overview. From the grid, you can open the detail page of each element for more information. The most crucial info, however, is given directly from the grid. You can see the price, a preview image, a short description and the target platform. Videos and live previews are also accessible from the grid, so you can quickly narrow down your choice to the one or two offerings that really interest you in the end.

After a click on the preview of the tool the detail page opens. The detail page deserves its name. You will get all the information possible from here. Descriptions are elaborate; screenshots are a dime a dozen. It is here where you find a box with additional tags attached to the tool. Clicking any of the tags creates another grid showing all the equally tagged products from all over Codester’s portfolio.

The detail page is divided into four segments with the overview being the default view after opening the page. There are tabs for Reviews, Support and FAQ. This support tab houses a direct support option much like a comment area in a CMS. Anyone with an account can ask questions here while a review can only be published by an actual buyer of the product to be reviewed. FAQ answer the most common questions to relieve the support area.

Share buttons allow you to spread the word on Facebook, Twitter, Google+, Pinterest, LinkedIn or via email. An affiliate program is open to anyone and offers 10 percent commission for each referred buyer.

Codester’s Licenses

Prices vary largely but licenses do not. With each item, you have the option to choose the Regular or the Extended license. The Regular license is the cheaper choice allowing you to use the purchase in one project, no matter whether it is private, commercial or for a client. The Extended license allows you the same but for unlimited projects. You are not allowed to sell the items as such, but that should be self-explanatory anyway.

Codester: Sell Your Work

As you’d expect from a marketplace Codester certainly does not provide the elements by themselves but works as a middle man for those skilled developers and designers who want to earn a solid dollar by selling their scripts, plugins, themes, source codes to the world. And doing so is easy.

Codester has very few, very fair conditions for sellers. Sellers earn 70 percent of each purchase flat. There are no minimum amounts of sales, no minimum amounts of money before you can request a payout, nothing. Payment is made via PayPal or Wire at the end of each month without any additional fees or other hooks and eyes.

Codester: Build Your Own Opinion

I like the project. It is a well-designed, thoroughly crafted marketplace environment with a focus on development work and that’s a good thing in itself. Codester still needs a lot more involvement from the community, be it in the way of more offerings in the diverse categories or more interaction on the already existing offerings. That’s where you come into play. Check out Codester and build your own opinion. Support it if you like it.

Over the years, I’ve heard developers say, “you can always tell when it’s a web app,” insinuating that web apps are lacking when compared with native apps. These same folks will claim that web app performance is poor, and the design is inferior. Although that might have been true years ago, today’s web fairs much better than the web of yesteryear. Our runtimes are super fast, leaving no lack of performance for apps. And the best user experience on the web is generations ahead of that of native apps, with a responsive design making web apps a great experience on any device.
The benefits of web apps continue. When well written, anyone with a browser can interact with a web app regardless of platform, version, or device. Its single code base also makes it the overwhelming choice for developers, brands, and companies that don’t desire or have the resources to build and maintain native apps for each platform.

Awesome Web Apps are Awesome Apps. Both in a Browser or in an App Store.

Defining the Problem

Every day I work with developers who are using ManifoldJS to take great web apps and turn them into store apps. ManifoldJS lets you maintain the spirit of the web by building hosted web apps. Hosted web apps are different because they allow your code to live on a web server just as it does when you access it in a browser. That means the codebase is always up-to-date, you can deploy changes whenever you desire, and, generally, if the code works in the browser then it will work as a hosted web app.

Great web apps have great user experiences, and a web app that is designed to work on a wide variety of browsers and devices can perform quite well as a cross-platform hosted web app. Some key characteristics of apps like this are:

Responsive layouts. The design presents a good reading/viewing experience no matter what the screen size or orientation. Users can accomplish their goals without the need to scroll in more than one direction or zoom in and out to interact with the app.

Appropriately-sized fonts. You should be able to easily read the font on the screen. This works both ways—it should be large enough to be read on a small screen, but it should not be ridiculously large on giant screens. Balance is key.

Flexible input. The app should support touchscreens, keyboard, and mouse; but if you want to support next-generation interfaces, don’t forget about input modes like voice or gestures.

Speedy delivery. Not everyone has hard-wired access to a fiber optic connection and unlimited bandwidth. Many devices have limited bandwidth or slower processor speeds. Your app should not take too long to load or feel sluggish during interactions.

With all of that considered, the question I most frequently get is: How should I design my app? (And they mean that in terms of aesthetics.) In other words, what should the visual design look like? Generally, the options are:

Design a single interface for the app, so it looks consistent no matter what platform it’s being used on.

Design a more “native” interface for each platform to honor its unique look and feel.

My answer is consistently the same: I have no idea. Luckily, my teammate Aaron Gustafson has some thoughts on the matter, though:

It Depends.

I completely understand the desire to have an interface look and feel like the same (or similar) to the native operating system. It creates a “seamless” experience for your users which may make it easier for them to understand how to use your app. That said, if your app is intuitive, there’s no reason to think the fact that it looks like the underlying OS is going to make it work any better for them. Furthermore, a “native” look and feel won’t render a crappy app instantly usable.

On top of that, chasing the design of a native OS is probably not a rabbit hole you want to go down. Here’s why: achieving exact design and functional parity between something as simple as a native control and a web control quite often requires extra markup, a bunch of CSS, and a bit of JavaScript. Anything is achievable with unlimited time and budget, so it’s completely doable, but it would be good to estimate the cost to see if you still think it’s a worthwhile endeavor.

Assuming it is, you then have the question of which operating system to model the control after. Or maybe you want to offer a different take on the control based on the operating system your user is on. In that case, you probably need to multiply the original estimate by the number of operating systems you want to support. It’s worth noting that, in the Android world at least, different device manufacturers often “skin” the operating system to look different from Android devices from other manufacturers. You’ll need to figure out which ones you want to include in your support matrix and multiply the estimate accordingly.

Then there’s QA and maintenance. You’ll need to test each native-like control on its corresponding platform. You’ll also need to test the script that chooses which experience gets delivered to which device in order to ensure you’re not accidentally sending the wrong experience. You’ll also need to test the delivery script on every other browser in your test matrix to be sure it is not causing issues there too.

Then there’s the question of what you need to do when a new operating system version is rolled out. iOS, for example, has made radical shifts in the design of their native controls with each major release. You’ll probably want to create unique versions of each control for each version of each OS you support. You’ll also need to keep tabs on upgrades so you don’t end up confusing your users if they visit our site in iOS 8 and have a control that looks like it’s from iOS 6. You’ll need to add the number of OS versions you want to support into the multiplier as well.

You’ll also need a baseline component look and feel for everyone who doesn’t fall into your matrix.

Finally: How many controls did you want to apply this approach to again?

Going Hosted is Easy

Not surprisingly, I think hosted web apps are a great approach to building store apps. For the “how to” on turning a web app into a hosted app, check out my blog post on getting started with ManifoldJS; it’s quite easy to do, and you can even generate your app in your browser using the ManifoldJS website.

Hosted apps provide you with new and exciting opportunities not possible in browsers through platform APIs. iOS and Android apps can be configured to access Cordova APIs like media capture and contacts and for Windows 10 you get access to all those APIs plus the entire Windows Universal API set. New features can be added to your app by simply feature-detecting the APIs, then executing additional JavaScript.

It doesn’t require a ton of extra work to bring your web apps to app stores. Once there, you’ll have the benefit of store-based discovery and a truly native app experience. So why wait? If you have a great web app, take five minutes and make it a hosted web app.

More Hands-on with JavaScript

This article is part of the web development series from Microsoft tech evangelists on practical JavaScript learning, open source projects, and interoperability best practices including Microsoft Edge browser and the new EdgeHTML rendering engine.

We encourage you to test across browsers and devices including Microsoft Edge – the default browser for Windows 10 – with free tools on dev.modern.IE:

The job of developers is great. They are always creating something new. Whether it is a web app based on PHP or a mobile app for iOS or Android or just about any other thinkable app for devices out there, coding is universal. On the downside, errors are universal too. Chasing errors is the part of the job any developer just hates. This will change once you discover Raygun. Raygun chases down all the errors for you, even before you or the users of your app have had the chance to notice they exist. Welcome to a dream come true.

Raygun: Your Future Weapon Today

Raygun itself is developed in New Zealand. Should you ever have had the chance to visit this great country, you will know that out of New Zealand anything seems possible. Raygun, the crash reporting solution for just about any app you might ever want to develop is a proof for that. Digging up and eliminating errors in software projects cannot be a lot easier.

The process is simple. Raygun provides an API and a large flock of libraries for a large bunch of supported languages. Once you’ve signed up for an account you get access to your personal API key that you will need to identify against the service.

Adding Raygun reporting to a software project is a matter of minutes. The process varies slightly from language to language, but generally you will just add the appropriate library to your code. All the rest happens automatically from there on and can be configured from the backend of the service.

Raygun’s dashboard gives you access to the power of crash reporting in a modern and even intuitive way. Besides using the dashboard as a command central, you can have error reports be sent to you or just about any team member via email – down to each individual error or grouped according to certain criteria.

Raygun’s Dashboard is Modern and Intuitive

If you prefer a different way of integration with your workflow Raygun has you covered. An impressive number of plugins makes sure to integrate error reporting into just about any relevant tool your team might be using. Just to name a few there are integrations with Trello, Slack, and Bugherd, which is enough to win me over personally.

Errors can be channeled into Slack or set up as a ticket in Bugherd. Raygun is even smart enough to check an error off once it has been addressed in Bugherd. Collaborative development is supported through integration with Github, and Microsoft developers will be happy to see integrations with Visual Studio.

Raygun: Documentation and Other Supportive Offerings

Often developer services are created in a way that even developers are having a hard time figuring out how to make use of it. Raygun is an exception to what I would be bold enough to call a rule. The documentation has to be called more than thorough and elaborate. The FAQ is more detailed than that of others, and the docs themselves leave no question unanswered.

Raygun maintains a blog for developers that adds even more value as it is not limited to covering aspects of their own service but also general programming issues. Check out this article on helpful tips for those that need to switch between Windows and Mac regularly.

Subscribing to their news feed is helpful to any developer – whether Raygun is used or not. The blog is not only the typical fig-leaf of the average company out there, but a regularly updated content offering targeting at bringing developers forward.

Raygun: Free Trial with no Strings Attached

Almost any paid service has free trials nowadays. But a free trial is not a free trial. How often has a service asked you to enter your credit card information first thing after having clicked on that „Free Trial” button? They only want to make sure that you are a real person with a real interest in checking the service out, and they promise not to bill you before the trial period ends – we’ve all been there more than once. I avoid these services.

Raygun has no strings attached. They do not ask you for payment information during the course of the free trial. You are absolutely free to evaluate the service uncomplicated and right away. Just enter your first and last name and email address. Then choose a password. That’s it. To make the signup even easier you can choose to authenticate via Github, Google, Twitter or Facebook.

Should you decide that you want to stick with Raygun after the 30 days are over, there is still time enough to enter the needed data ;-)

Raygun’s Flexible Pricing

Prices vary with the number of errors tracked and apps monitored while in all plans you can have unlimited team members. If you have not more than five apps to watch and expect not to receive more than 25k errors per month you might think about going with the Small Plan for 49 dollars per month. Prices then rise to 149 dollars in the Medium Plan to 499 dollars in the Large Plan – see the pricing chart below. Annual payment saves you 10 percent off of any plan.

Should even the Large Plan seem to small for you or should you want to run Raygun on your own infrastructure, don’t hesitate to contact the friendly staff at Raygun to have them figure out an individual offering to best suit your needs.

Just starting out you may be unsure to find the fitting plan for you. Simply go with the smallest plan you estimate might be adequate. You can always grade your plan up and down as needed in accordance with your chosen billing period. Should the actual volume exceed the capacity you have booked Raygun leaves you the choice to either upgrade to the next plan or cap processing at your current plan level. I’d wish every service provider would have such a fair pricing model.

Make sure to check out the handful of case studies Raygun has published. It is always worthwhile to see where other developers see the value of a service.

Now it’s up to you. As I already stated, the 30 day trial is actually free with no strings attached. There is not much reason to not try it. So let me close with a quotation from Shia LeBeouf’s popular motivation video: „Just Do It!”

Disclaimer: This article is sponsored by Raygun. They took no influence in what we wrote however.

]]>How to Build a Web Game in an Hourhttps://www.noupe.com/development/how-to-build-a-web-game-in-an-hour-93276.html
https://www.noupe.com/development/how-to-build-a-web-game-in-an-hour-93276.html#commentsFri, 02 Oct 2015 12:00:56 +0000http://www.noupe.com/?p=93276]]>

You don’t need an entirely new skill set to develop games. In fact, your current Web development skills in HTML, JavaScript, CSS and so on are just fine for a wide range of games. When you build a game with Web technologies, it will run on pretty much any device with a browser.

To prove this, I’ll demonstrate building a game from scratch using Web technologies and just two external libraries, and I’ll do it in less than one hour. I’ll cover a variety of game development topics, from basic design and layout, controls and sprites, to arti­ficial intelligence (AI) for a simple opponent. I’m even going to develop the game so it works on PCs, tablets and smartphones. If you have some experience with programming as a Web developer or another development domain, but no experience writing games, this article will get you started. If you give me one hour, I promise to show you the ropes.

Get Up and Running

I’ll do all development in Visual Studio, which will allow fast execution of the Web app as I make changes. Be sure to have the latest version of Visual Studio so you can follow along. I used Visual Studio 2013 Pro, but updated the code with Visual Studio 2013 Community. Also if you have a Mac or Linux, Visual Studio Code is available cross-platform nowadays.

This app will require no server code, so I start by creating a new, empty Web page project in Visual Studio. I’ll use the empty C# template for a Web site by selecting the Visual C# option after selecting File | New | ASP.NET Empty Web Site.

Before you break your fingers trying to copy out all the code needed from the following boxes, take the easy way and go for this nicely archived code download (.zip).

The index HTML file requires just three resources: jQuery, a main style sheet and a main JavaScript file. I add an empty CSS file to the project called style.css and an empty JavaScript file called ping.js to avoid errors when loading the page:

Also don’t forget to test this app (or any other) for that matter across browsers & devices. While the code I wrote is interoperable with modern browsers like Chrome, Firefox, and Microsoft Edge, it’s always a best practice to double-check. Now you can do that with free virtual machines and other tools like http://www.browserstack.com.

Basic Design

The game I’m building is a variant of Pong that I call Ping. Ping has essentially the same rules as Pong, except that either player grabs the ball when it comes to them and can then fire the ball back either directly or at an angle up or down. It’s often best to draw how you would like the game to look before you build it. For this game, the overall layout I want to see is shown in Figure 1.

Figure 1: Overall Design of Ping

Once I’ve developed the game design layout, it’s just a matter of adding each element to HTML to build the game. One thing to note, though, is I’ll group the scoreboard and controls to ensure they sit together. So one by one, you can see I’ve added the elements, as shown below:

Play with Style

If you were to load this page, you wouldn’t see anything because there’s no style applied. I’ve already set up a link to a main.css file in my HTML, so I’ll place all my CSS in a new file with that name. The first thing I’ll do is position everything on the screen. The body of the page needs to take up the whole screen, so I’ll set that up first:

body {
margin: 0px;
height: 100%;
}

Second, I need to have the arena fill the whole screen with the arena background image (see Figure 2) applied:

Next, I’ll position the scoreboard. I want this to appear top and center, over the other elements. The command position: absolute lets me place it wherever I want and left: 50% places it halfway across the top of the window, but starting at the leftmost side of the scoreboard element. To ensure it’s perfectly centered, I use the transform property and the z-index property ensures it’s always at the top:

I also want the text font to be retro-themed. Most modern browsers let me include my own fonts. I found the appropriate Press Start 2P font from codeman38 (zone38.net). To add the font to the scoreboard, I have to create a new font face:

The position: absolute property on the player, opponent and ball will let me move them around using JavaScript. If you look at the page now, you’ll see the controls and the ball have unnecessary pieces attached to them. This is because the sprite sizes are smaller than the default 128 pixels, so I’ll adjust these to the right size. There’s only one ball, so I’ll set its size directly:

There are four control elements (buttons the user can press to move the player about), so it behooves me to make a special class for them. I’ll also add a margin so they have a little space around them:

One nice thing about this design is everything is set with relative positions. This means the screen can be a number of different sizes while still making the game look good.

Follow the Bouncing Ball

Now I’ll make the ball move around. For the JavaScript code, I’ve referenced a file called ping.js in HTML, just as I did with the CSS. I’ll add this code to a new file with that name. I’m going to make objects for the ball and each of the players, but I’ll use the factory pattern for the objects.

This is a simple concept. The Ball function creates a new ball when you call it. There’s no need to use the new keyword. This pattern reduces some of the confusion around the this variable by clarifying the available object properties. And because I only have an hour to make this game, I need to minimize any confusing concepts.

The structure of this pattern, as I make the simple Ball class:

var Ball = function( {
// List of variables only the object can see (private variables).
var velocity = [0,0];
var position = [0,0];
var element = $('#ball');
var paused = false;
// Method that moves the ball based on its velocity. This method is only used
// internally and will not be made accessible outside of the object.
function move(t) {
}
// Update the state of the ball, which for now just checks
// if the play is paused and moves the ball if it is not.
// This function will be provided as a method on the object.
function update(t) {
// First the motion of the ball is handled
if(!paused) {
move(t);
}
}
// Pause the ball motion.
function pause() {
paused = true;
}
// Start the ball motion.
function start() {
paused = false;
}
// Now explicitly set what consumers of the Ball object can use.
// Right now this will just be the ability to update the state of the ball,
// and start and stop the motion of the ball.
return {
update: update,
pause: pause,
start: start
}

To create a new ball, I simply call this function I’ve defined:

var ball = Ball();

Now I want to make the ball move and bounce around the screen. First, I need to call the update function at some interval to create an animation of the ball. Modern browsers provide a function meant for this purpose called requestAnimationFrame. This takes a function as an argument, and will call that passed-in function the next time it runs its animation cycle. This lets the ball move around in smooth steps when the browser is ready for an update. When it calls the passed-in function, it will give it the time in seconds since the page was loaded. This is critical for ensuring animations are consistent over time. In the game, the use of requestAnimationFrame appears as follows:

Try running the code and you’ll see the ball move at an angle and off the screen. This is fun for a second, but once the ball goes off the edge of the screen, the fun stops. So the next step is to make the ball bounce off the edges of the screen, as implemented in Figure 7. Add this code and running the app will show a continuously bouncing ball.
A Moveable Player
Now it’s time to make the Player objects. The first step in fleshing out the player class will be to make the move function change the position of the player. The side variable will indicate which side of the court the player will reside, which will dictate how to position the player horizontally. The y value, passed into the move function, will be how much up or down the player will move:

We can then lay out player movement, stopping the motion if the player sprite reaches the top or bottom of the window.

var move = function(y) {
// Adjust the player's position.
position[1] += y;
// If the player is off the edge of the screen, move it back.
if (position[1] <= 0) {
position[1] = 0;
}
// The height of the player is 128 pixels, so stop it before any
// part of the player extends off the screen.
if (position[1] >= innerHeight - 128) {
position[1] = innerHeight - 128;
}
// If the player is meant to stick to the right side, set the player position
// to the right edge of the screen.
if (side == 'right') {
position[0] = innerWidth - 128;
}
// Finally, update the player's position on the page.
element.css('left', position[0] + 'px');
element.css('top', position[1] + 'px');
}

I can now create two players and have them move to their appropriate side of the screen:

Keyboard Input

So in theory you can move the player, but it won’t move without instruction. Add some controls to the player on the left. You want two ways to control that player: using the keyboard (on PCs) and tapping the controls (on tablets and phones).

To ensure consistency between touch inputs and mouse inputs on various platforms, I’ll use the great unifying framework Hand.js (handjs.codeplex.com). First, I’ll add the script to HTML in the head section:

<script src="hand.minified-1.3.8.js"></script>

I’ll then use Hand.js and jQuery to control the player when you press keyboard keys A and Z, or when you tap the controls.

Catch the Ball

As the ball bounces around, I want to let players catch it. When it’s caught, the ball has an owner, and it follows the motion of that owner. I’ll add functionality to the ball’s move method, allowing for an owner, which the ball will then follow:

Now, if the ball has an owner, it will follow that owner around. But how do I determine the owner? Somebody has to catch the ball. Let’s determine when one of the player sprites touches the ball. When that happens, I’ll set the owner of the ball to that player.

If you try playing the game now, you’ll find the ball bounces off the top of the screen, and you can move the player to catch it. Now, how do you throw it? That’s what the right-hand controls are for—aiming the ball. Let’s add a “fire” function to the player, as well as an aim property.

Keep Score

When the ball passes a player, I want to change the score and give the ball to that player. I’ll use custom events so I can separate scoring from any of the existing objects. The update function is getting long, so I’ll add a new private function called checkScored:

Now when the ball makes it past your opponent (which isn’t that difficult, as the opponent doesn’t move) your score will go up, and the ball will be handed to the opponent. However, the opponent will just hold onto the ball.

Get Smart

You almost have a game. If only you had someone with whom to play. As a last step, I’ll show how to control the opponent with simple AI. The opponent will try to stay parallel with the ball as it moves about. If the opponent catches the ball, it will move randomly and fire the ball in a random direction. To make the AI feel a little more human, I’ll add delays in everything done. This isn’t highly intelligent AI, mind you, but it will be something to play the game against.

When designing this kind of system, it’s good to think in states. The opponent AI has three possible states: following, aiming/shooting and waiting. I’ll be the state between following actions to add a more human element. Start with just that for the AI object:

The FOLLOWING state is straightforward. The opponent moves in the vertical direction of the ball, and the AI transitions to the WAITING state to inject some slowed reaction time. The code below shows these two states:

When you run the game, you’ll see the opponent follow the ball’s movements—not a bad AI in less than 30 lines of code. Of course, if the opponent catches the ball, it won’t do anything. So for the last trick of the hour, it’s time to handle the actions for the AIMING state.

I want the AI to move randomly a few times and then fire the ball in a random direction. Let’s add a private function that does just that. Adding the aimAndFire function to the AIMING case statement makes a fully functional AI against which to play.

Wrapping Up

By now, you have a full-fledged Web game that works on PCs, smartphones and tablets. There are many possible improvements to this game. It will look a little awkward in portrait mode on a smartphone, for example, so you need to make sure you’re holding the phone in landscape for it to work properly. This is just a small demonstration of the possibilities for game development for the Web and beyond.

More Hands-on with JavaScript

This article is part of the web development series from Microsoft tech evangelists on practical JavaScript learning, open source projects, and interoperability best practices including Microsoft Edge browser and the new EdgeHTML rendering engine.

We encourage you to test across browsers and devices including Microsoft Edge – the default browser for Windows 10 – with free tools on dev.modern.IE: