mobile app development

The Truth About Building a Mobile App: 7 Things You Need to Know

Building a mobile app can be an adventure. Whether you write the code yourself or hire someone else to do it, you will enjoy a fascinating process. At the same time, if you get it right you can make a lot of money. At the very least, you will own something you can be proud of.

Many apps don’t turn out as planned. That’s because not everyone follows a proven process. There are critical aspects of creating an app that will increase your chances of success. Here are seven of them.

Choose the right audience for your app

The audience could make the difference between an app that makes money and one that doesn’t. Modern mobile users want apps that fit their specific needs. So you need to consider who will use your app before you start building it.

This bit is relatively simple. Think about the group of people who will benefit the most from your idea. Is it accounts, runners, or music teachers? Spend some time brainstorming potential users. Don’t worry about leaving people out. Once you’ve made your app perfect for one group, you can use the same ideas when you decide to expand your user base.

Choose a platform you’re comfortable with

What’s the best platform for creating mobile apps? That depends entirely on you. Your budget, experience, and what you’re trying to develop will influence your decision. However, you need to keep in mind that your platform has almost no impact on the success of your app.

What’s more important is the usefulness of your app. Focus on that. Then, choose a platform that allows you to create an app within your desired budget and time frame.

What problem are you solving?

When people download your app, they do it for one reason. They have a problem, and they need it solved. That applies to mobile games. When people are bored or need stimulation, they turn to games. Whichever way you look at it, your app needs to deal with some pain.

To succeed, start with a simple issue that your users are having. Find something that either improves their work processes or helps with a hobby of theirs. You can also find ways to help them connect with other people.

Once you’ve figured out what they want, write down the best way to solve it on a piece of paper. That will work as a blueprint for you and your team. As long as you focus on making your users’ lives easier, you will gain traction once your app is ready.

Write down the key features your app requires

Overlading an app with features is a widespread mistake. In the mobile world, less is more. Adding too many ideas will confuse your users and discourage them. Instead, focus on the core features. Your goal is to deliver a specific result. You should discard anything that doesn’t add to that.

This process will also expose problems you might come across when coding your app. For example, you may have underestimated the required costs. When you have a clear picture of the core features, you can spend your money getting them developed. As time goes one, you can then add on top of your core using the feedback you get from the marketplace.

Design and code the front-end first

Your users expect your mobile app to be easy to use. In most cases, they want to be up and running within a couple of minutes. Otherwise, they will abandon your app and start looking for another one. For this reason, you need to focus your initial efforts on building the front end interface.

Start with a mock-up. Using either pen and paper or a computer program create a layout of the final product. Adjust it until it feels right. Get some feedback from potential users to see how they think. Keep refining the front-end until you’ve designed a smooth and intuitive user experience.

Do you need an API?

If your app retains user data, you may need to build an API ( Application Programming Interface ). That will allow you to keep data accessible from various devices. In the event something happens to the mobile device, your users will be able to get back their info.

You can also use an API to integrate your app with other services. To top that, you can use a remote server for things like image or sound manipulation. In other words, you can add functionality that goes beyond what a mobile device can handle.

The critical thing to remember is that an API requires a separate set of coding skills. That means you may have to use an independent developer to handle that aspect of your app. Many apps fail because the developer has to divide attention between several technologies. Don’t let that happen to your project!

Promote your app!

Many people rely on the Google and Apple app stores to attract users. While that is an essential aspect of promoting an app, it is not enough to “dump” it and wait for traffic. You need to put in extra effort to ensure your app gets enough attention.

One good place to start is Facebook Groups. If your app solves a problem, you can benefit from exposure in relevant discussion groups. In fact, users are always on the lookout for ways to improve their lives. Your app could be the exact thing they’ve been seeking.

If you have a reliable business model, you should consider running ads for your app. Here is the trick:t just push people to buy your app. Instead, build a mailing list comprising of people who will benefit your product. This step alone can increase your chances of attracting more users. You can also make money by promoting additional products as an affiliate.

Following the above steps will reduce the chances of your app failing. Use them to build your strategy. Remember, you need to plan before even a single line of code is written. Above all, enjoy yourself and create something the world will love!


ASP.NET Core Under the Hood

What’s ASP.NET Core?

ASP.NET Core is basically a revamped version of the good old ASP.NET Framework that developers have been using for quite a while now. One of they key features that Microsoft wants out if this new version is being able to create your applications from anywhere you want, making the Framework cross-platform and open source. For this, Microsoft not only created ASP.NET Core, but also included a new IDE (Visual Studio Code) for non-Windows users to play with, which you can check out over here.

Why All of this Changes Now?

One of the biggest challenges Microsoft had when confronting the competition on web development (Ruby, Java, Python and more) was that in order to use the Framework you would have to be a Windows user, this is itself made it a losing battle from start and was causing other options to gain increased popularity over the last few years.

This limitation was impacting on several other different levels as well, one of the most prominent one is Startups. Insanely huge businesses have being created out of a Startup as of late and pretty much all of the them use some of the open source technologies available today, which was sending the message that proprietary software was not required to scale your business needs and that it could all be done using open source solutions which in turned was hurting the popularity and usage of the ASP.NET Framework on the web.

This issues coupled with a thirst for innovation and improved development tools are the reason ASP.NET Core exists today, everything about this new release was build having this key concepts in mind at all steps of the way:

  • Cross-Platform
  • Open Source and Free
  • Modular, Fast and Easily Extensible
  • Community Focused

What Really Changed?

As we mentioned before, ASP.NET Core is truly portable, but for this change to happen Microsoft not only modified the ASP.NET Framework itself but also created a completely new CLR, this new CLR is the one in charge of building and running ASP.NET Core applications on a Mac or Linux if required.

Another big change is the fact that modularity and dependency injection are first class citizens of the Framework now, so the old System.Web namespace, for example, is now completely gone for all new applications created with ASP.NET Core. Every feature that wants to be included on your solution has being refactored into a NuGet package. This new approach allows developers to have complete control over exactly what goes into their solution. All of this allows for final solutions to be significantly smaller in size than what were were used to, and this includes a bunch of other benefits like being able to have better control of the overall security of you application, a significant boost in overall performance and also allows cloud hosted application to fit better on the pay-for-what-you-use model.

For everyone interested in taking a look at all that ASP.NET Core has to offer here is the official documentation, in there you will find all of the details for every topic discussed on this blog.

Understanding a base ASP.NET Core Application

Before we even begin, let’s take a moment to just list all the tooling I’m using at the moment of writing this post.

And that’s basically it :). Let’s get started!

Creating a .NET Core Web App.

There are two really simple ways to start with your new web application, you can use  the common way and create it through the Visual Studio IDE as a New Project and selecting the .NET Core Web App Template.

New Project VSIDE

After the selection, developers can choose one of three simple templates to start your development from, you can either choose an Empty Solution or you can choose from a Web API template or Web Application template, the difference between them is mostly that Web APIs are geared a little bit more towards building RESTful services that return raw data through HTTP and Web Applications are also able to return HTML as views to be rendered on the client.

Another way in which ASP.NET Core web apps can be bootstrapped is using the CLI tools installed by default with VS 2017. After installation users can simply go to the desired folder in which to start the solution and create a new one using the following commands:

$ dotnet new
$ dotnet restore
$ dotnet run

dotnet new will get us our base files required including a file which contains the base dependencies on our project, once we get there we can use dotnet restore to download all of those dependencies to our local solution and finally with the dotnet run we can built the solution and run the sample application. If you want more detail information about the CLI tools and how to use them feel free to check it out.

Base Solution Files

After opening our solution, we can see that the project does not contain a lot of files, we will be taken a brief look at each of the most important ones and what they represent for the application. I’ll also leave link to every topic that I think deserves a deeper look than what I’ll cover on this post.


In its most basic form, ASP.NET Core apps are just simple console applications, we can see the traditional Main method being used to create a new instance of a web application host using the WebHostBuilder, this builder also provides ways in which we can specify different settings on our host like the desired web server to be used (Kestrel on our case) or which class should be used as the app Startup. The builder exposes a series of different configuration options that we can modify to create exactly the host required for our application, additional settings that can be configured include selecting the content root directory for our application or setting the application Environment. There is a lot more to know about web hosts and their role on ASP.NET Core applications and you can read all about it from the official Microsoft documentation.


There are two main things that have to happen here, the Startup class of our application, which we configured when building the app host, is the one in charge of defining exactly how we want the Request Pipeline to handle all the incoming HTTP requests, it is also on this class that we will set up the configuration for all the Services that our application depends on.

This class must always includes a Configure and ConfigureServices methods. The Configure method is where we will be specifying just exactly how our application will respond to incoming HTTP requests. We do this by injecting different middleware component to an IApplicationBuilder instance that is provided to us with Dependency Injection.


The IApplicationBuilder exposes a series of extension methods that we can use to configure each component that will try and handle the request and, if not successful, will pass it along to the next piece of middleware until it can finally process the request and generate a response back to the client.

On the other hand, the ConfigureService, which is optional, always runs before the Configure on application startup, this is the method that we will use to configure all of the additional Services that we will want available for Dependency Injection throughout our app. It is on this method that we can add Entity Framework or MVC to our application and configure it accordingly. All services added in here will be available on all the application using DI and they have to be added to the IServiceCollection that we have on the ConfigureServices method.



Basically Middleware refers to all the software that is in charge of handling all requests done to the application and also for returning the corresponding response back to the client. It is assembled for .NET Core application using Middleware components, they each have and order in which they receive the request and after running it through some logic it can either choose to pass the request to the next component or cut the chain there and return a response back, a perfect example for this happens when we implement and authentication middleware component, each request passes into the component and after deciding if the request has the required authentication it can pass it to the next component or return an error back to the client. The order in which the component is called is configured in the Configure method mentioned before and it’s critical for the application’s security and overall performance and functionality.

.NET Core already provides a selection of built in Middleware component and developers can also choose to implement their own according to their specific needs, some of the already built in components include:

Middleware Diagram

Exception Handling

So how do we handle errors that can happen on our application on this new framework? .NET Core comes with a build in way to easily catch any exception and act accordingly called the Developer Exception Page. This new way can be access on the Startup.cs class on the Configure method, it is a new functionality that displays all exception details on the client if an error occurs. Always remember to enable this only for development environments as displaying error information to final users is never a good practice.

The other alternative for displaying users only that an error occurred on a styled and pretty page is to use the UseExceptionHandler method on the ApplicationBuilder instance, on the example above if the application is running on Development Environment it will catch any exception and display the Exception Page that allows us to try and figure out exactly what went wrong, but once the app is not on Development anymore it will instead return the Error View on the Home Controller which can just be a simple HTML page that display user friendly information about the issue that happen instead of showing exception details.

Where to go from here?

Although the information presented here is barely scratching the surface on everything there is to know about .NET Core and all it’s changes I tried to include all the required basics to be able to understand how a new .NET Core app works, as always is up to every developer to take the next step in truly understanding the framework that they use or plan to use for their applications. There is a lot of changes from the way our apps used to work and it is a good idea to try and start understanding all of this differences as it looks like .NET Core is the future Microsoft is aiming at, regular ASP.NET applications will still be supported for a really long time but innovation is the name of the game when talking about web applications.

There is really a lot of information available online, here are some suggested places that you can use to start learning .Net Core today!

Official Docs

GitHub Repo

.NET Core on MVA


.NET Core

What is .Net core and why it’s better?

What is .Net core?

The .Net core is basically an addition to the already very popular .NET framework. It extends the use ability of .Net framework by allowing several new tweaks, which weren’t there before on .NET platform. Let’s have a look how .Net core is different and more compatible compared to other similar framework’s.

 A brief history:

Microsoft has been working a lot to make .net more enhance and user accessible. There .NET framework was one favorite tool for many developers as they could code in various programming languages including C, C++ and python. Due to this .Net became very popular and common among programmers. Over the time, Microsoft kept supporting .net platform but this time they wanted to introduce some new add ons which could make it even more convenient so, they came up with .Net core framework.

Benefits of .Net core and how is it better?

As mentioned earlier, .Net core brings a new updated package for its users. Let’s take a look how convenient this new package is.

1: Open source:

On .Net framework users weren’t unable to share the code on all the major platforms. This became an issue especially for Mac users. The .Net core runtime will be shared by the open source community which in collaboration with .Net will enhance the overall frame work. Then developers can share it on Mac and Linux without any issues. This is not only helpful for current .net users but will also facilitate new comers. However, initially it’s only available for windows but after some time programmers would be able to share the code on all major plat forms.

2: More secure than ever:

.Net core can be shipped as a private .Net core version. Now what does this mean? It means that you can ship a private version of .Net framework for your own set of applications.

This sounds very interesting because not only it will secure your .Net framework but will also strengthen the versatility of this framework.

3: Cross platform:

As stated earlier the new .net core framework will allow the programmers to access it on all three major platforms including Windows, Mac and Linux. So, no need to stick with Windows to access the latest .Net framework.


The new and enhanced .net core framework seems the best coding tool at the moment. Microsoft has finally resolved the compatibility issue as Net can be access on all three major operating systems. There are several other enhancements too. It’s great to see that how Microsoft has made an already very popular framework even better and convenient. It will definitely attract a lot of new users too.

All in all .Net core framework seems quite promising for the near future.

If you are interested in learning more about .NET Core, please contact us.

microsoft azure

Microsoft Azure

Microsoft Azure which was formerly known as Windows Azure, is Microsoft’s public cloud computing program. It offers a series of cloud facilities, including those for analytics, compute, networking and storage. Users can choose and pick from these services to scale and develop new applications, or run current applications in the public cloud.

Expertise of Windows

Azure is built on Windows, so you can compose applications in the similar programming languages you have used for Windows applications: C++, Visual Basic, C#, etc. You can also operate familiar tools such asASP.NET, along with Visual Studio and other common Windows technologies. This makes it simple for corporations to hire developers who already have the abilities to make applications for the Azure program. And since the Azure environment is much similar the normal Windows environment, it is at ease to create a cloud version of a current Web application.

Windows VMs 64-bit

Apps working on Azure run in virtual technologies, with every instance of the app running in its own Virtual Machines on the 64-bit Windows Server 2008 operating system. The hypervisor or virtual machine monitor on which they run is designed exactly for the cloud. You do not have to provide your own Virtual Machines or deal with maintaining and managing the Operating System since apps are technologically advanced using worker role instances or Web role instances that operate in their own VMs. The apps interoperate with other Azure mechanisms through a Windows Azure manager that works in each Virtual Machines. With Azure, you can concentrate on the code and do not have to be concerned about the hardware.

Windows Azure Marketplace

Acts in the same way like iPhone Application Store, Windows Azure Marketplace is created to be an online store where organizations can purchase prebuilt Windows Azure cloud applications and services, and it is also an area where developers can present their Windows Azure applications for selling.

Windows Azure Service Bus and AppFabric Caching

Windows Azure AppFabric offers the foundation to develop .NET apps on Windows Azure. Service Bus allows Azure applications to link up with on-premises applications — passing through Network Address Translation (NAT) and firewalls connections. AppFabric Caching allows advance application performance by delivering a dispersed in-memory application cache.

Windows Azure Extra Small Instance

Earlier, developing with Windows Azure has been a high-priced application — especially for smaller developers. Though, the Extra Small Instance, evaluated at $0.05 for each computing hour, is programmed as a more cost-effective training and development environment.

Microsoft Azure for Small to Medium Sized Businesses

The Microsoft Azure cloud program gives Small and Medium Businesses the facility to move serious business applications to the cloud with no investing in costly infrastructure. Azure is an industry pioneer in Platform as a Service (PaaS) and Infrastructure as a Service (IaaS) offering options for public, hybrid or private cloud solutions.

With lots of special applications and choices, Azure can be personalized to your exclusive business environment and upsurge productivity by letting your employees work from virtually anyplace. Cloud hosting also allows businesses take benefit of industry specific platforms that can lessen upfront costs and in-house IT management.

Designed for Small and Medium Businesses in mind, one of the largest benefits that Azure has over other cloud program suppliers is their ZERO upfront charges. Azure satisfies by scaling up or down based on a current request, letting you pay for only what you use. This blend is designed to expand your business, lessening upfront charges and high maintenance prices.

If you are interested in learning more about Microsoft Azure, please contact us.


Simple Stерѕ tо Create a Wеbѕіtе Uѕіng WordPress

Stаrt-uр businesses and ѕmаll buѕіnеѕѕеѕ can еxtеnd thеіr рrеѕеnсе оntо thе Internet with a ѕіmрlе Website thаt іѕ еаѕу to сrеаtе and manage. A bаѕіс Wеbѕіtе juѕt nееdѕ a fеw pages: the hоmе раgе, a ѕесtіоn providing bасkgrоund information оn thе соmраnу, a раgе fоr the соmраnу’ѕ рrоduсt offerings, a соntасt раgе, and a ѕесtіоn fоr роѕtіng blоgѕ and rеlеvаnt nеwѕ. Thіѕ type оf Wеbѕіtе is еаѕу tо create аnd dеѕіgn using WоrdPrеѕѕ.

Below are ѕоmе ѕіmрlе ѕtерѕ you саn follow tо dеvеlор your start-up Wеbѕіtе:

1. Thе first requirement to buіldіng уоur Wеbѕіtе is to оbtаіn a Web hоѕtіng service. Choose a Web hоѕt that is compatible with MуSQL databases аnd PHP. Onсе уоu hаvе this, dоwnlоаd thе WоrdPrеѕѕ ѕоurсе code. Sоmе Wеb hоѕtѕ оffеr аutоmаtіс іnѕtаllаtіоn оf WordPress. If уоur Wеb hоѕt оffеrѕ that ѕеrvісе, gо аhеаd аnd tаkе advantage оf it. If you prefer tо do іt mаnuаllу, you nееd tо сrеаtе a MySQL dаtаbаѕе оn your server. Take note of thе ѕеrvеr fоldеr оf уоur Wеbѕіtе so you knоw the URL to іnрut fоr unzірріng thе WоrdPrеѕѕ source соdе. Sее tо іt thаt you hаvе grаntеd уоurѕеlf permission to rеаd, wrіtе аnd edit your WordPress files. On your brоwѕеr, go tо your Wеbѕіtе’ѕ URL аnd іnѕtаll WordPress. Aftеr installation has been completed, уоu wіll be gіvеn an аdmіnіѕtrаtоr’ѕ раѕѕwоrd for уоur lоgіn.


2. Once уоu login tо уоur WоrdPrеѕѕ ассоunt, уоu can сhаngе уоur раѕѕwоrd to ѕоmеthіng thаt you can еаѕіlу remember. Dоwnlоаd your сhоѕеn WordPress theme. Tо асtіvаtе thе theme, gо to thе control раnеl оf WоrdPrеѕѕ аnd click оn thе арреаrаnсе tаb оn the left роrtіоn оf thе соntrоl раnеl.

3. Stаrt adding уоur Wеbѕіtе pages bу clicking оn thе ѕесtіоn for pages. You саn сlісk оn five pages to соvеr fоr your hоmераgе, about the соmраnу раgе, рrоduсtѕ, blоgѕ and nеwѕ, аnd соntасt information page.

4. Lооk fоr thе settings lіnk аnd choose thе ѕub-ѕесtіоn for ‘rеаdіng.’Choose the ‘ѕtаtіс’ орtіоn for your front раgе. You wіll bе gіvеn a drop dоwn list fоr сhооѕіng your type of home page. Pісk оut the page thаt уоu аrе rеѕеrvіng fоr уоur blоgѕ and news раgе. Sаvе аll оf your settings.

5. Frоm hеrе you can ѕіmрlу uрlоаd thе different content уоu wаnt to арреаr оn еасh оf уоur Wеb раgеѕ. However, іf уоu wаnt tо сuѕtоmіzе thе look оf thе dеfаult thеmе, уоu mау сору thе HTML/CSS codes of your рrеfеrrеd ѕіtе’ѕ lауоut. Access уоur Website within уоur рrеfеrrеd HTML еdіtоr, ѕuсh аѕ Drеаmwеаvеr or TеxtMаtе. Lооk fоr thе theme fоldеr and ассеѕѕ thе style sheet wіthіn that fоldеr. Yоu hаvе ѕеvеrаl орtіоnѕ for сuѕtоmіzіng the ѕtуlе ѕhееt. Yоu can mаkе ѕmаll alterations tо mееt уоur design ѕресіfісаtіоnѕ. If уоu аlrеаdу have a ѕеt style ѕhееt, уоu can juѕt сору its соntеntѕ. The lаѕt option wоuld bе tо соmbіnе thе dеfаult style ѕhееt wіth your own customized ѕtуlе sheet by including іt in thе header.php fіlе.

6. WоrdPrеѕѕ has the сараbіlіtу оf рuttіng together dіffеrеnt рhр fіlеѕ. Yоu wіll have a рhр fіlе fоr your hеаdеr, sidebar, fооtеr, and for the central part оf уоur раgе.

Thе bеѕt wау to learn the process оf сrеаtіng уоur Website is to actually trу it!

If you are interested in learning more about how to install/setup wordpress, please contact us.