Tuesday, October 8, 2019

Pros/Cons Progressive Web Apps



Web app developers constantly strive to improve the performance and user experience of their products due to the demand from consumers for faster, more responsive, and easier to use apps. In fact, according to Google, 46% of people would not purchase from a brand again if they had an interruptive mobile experience.
Enter progressive Web apps (PWAs), an alternative to native app development, that combines the best of traditional Web sites with the functionality of mobile apps to offer the speed and seamless integration users want.
What are PWAs and how do they differ from native apps?
Google introduced PWAs in 2015 as a cross between web pages and native mobile apps. They are, basically, Web sites that act like native mobile applications, combining the best features of mobile apps with Web sites.
Traditional native apps are typically built for each specific device and/or operating system (Android vs. iOS) using platform-specific programming languages (Java, C#, or Swift), which means apps are usually developed twice, increasing costs and development time.
However, PWAs use Web-centric technologies based on JavaScript (such as JSON, React, and Angular, but also PWA-specific components like Polymer) and HTML. The main driver of a PWA is a script called a Service Worker that runs in the background of a Web page to catch network requests outside of user interactions and cache and produce responses. This brings the speed and responsiveness of a Web page to a mobile app a user can access right from the home screen of their phone.
So, how do you know if a progressive Web app is right for your project? Let’s look at 5 pros and cons of progressive Web apps to help you decide.
Pros of PWAs


Accessibility 
A PWA can download data and return user responses just like a native app or a Web site, but by using caching the app can utilize stored data if there is no Internet or mobile connection, essentially making it accessible offline and reducing the need for load and reload.
And, there’s no need to install the app on a user’s device from an app store, which saves device capacity; however, an app user can choose to save the PWA to their home screen for easy access.
Quick Download and Fast Performance
Since PWAs make heavy use of service worker technology, which runs in the background of the app, to operate, they load lightning-fast and respond to user requests with the same speed. Also, when a user installs a PWA on their device, there’s little lag time waiting for a download or installation process to complete, like there is with native apps. 
Multi-Platform
PWAs are based on Web technology (Javascript, HTML, CSS), so they are mostly device and browser independent and don’t require duplicate development to run on Android, Windows, or iOS platforms.
Search  Indexed
Because PWAs are essentially Web pages, they can take advantage of search engine optimization and Google indexing to allow users to find them via standard or even voice searches rather than through a device-centered app store.
No Updates Required
PWAs refresh themselves each time a user’s device has Internet or mobile connectivity and opens the app. There’s no need to push an update notification or make the user re-download the app.
Cons of PWAs

Access to Hardware
Because a PWA is not natively installed to a user’s device, it cannot access certain hardware features like advanced camera functionality, Bluetooth, the altimeter, GPS, or Touch ID.
Platform Limitations
While PWAs are mostly multi-platform, there are some iOS compatibility issues prior to version 11.3. Additionally, PWAs are not supported by Safari, Internet Explorer, Edge, or custom browsers, which means older devices running these browsers cannot access and get the full benefit of PWAs.
Performance vs. Native App
PWAs are written in JavaScript, a single-threaded programming language, which inherently limits their performance as compared to native apps that use multi-threaded languages like Java.
In turn, devices do not natively interpret Web languages; doing so requires more processing power, which then drains battery life at a faster rate when a user accesses a PWA.
App Store Availability
Even though PWAs can be indexed and searched, they can’t be listed on a device’s app store. Users who find and download apps exclusively through their app listings may not find a PWA.
No Cross-Application Login
Since PWAs do not interact directly with native apps, they offer no support for cross-application logins or security. If a user has both a native app and a PWA, once they are logged in to one version of the application, they will still have to login to the other once they access it. 
And, with iOS, there’s no Touch ID support, so logging in will require users to type in their actual credentials. 
Which one is right for you?
If your business wants to add a mobile app to your suite of product offerings, but you have a limited budget, or your main focus is on speed, responsiveness, and seamless user experience, the choice to build a progressive Web app is clear. A PWA’s accessibility, fast performance, cross-platform capabilities, and especially search indexing give it the edge over a native app for your needs.
If you’d like to learn more about PWAs, check out this deep dive presentation by Google.
And, if you’d like to see PWAs in action, browse this directory at Appscope to see how companies like Instagram, Twitter, and Tinder utilize their features.
If you’re ready to start building your own progressive Web app, give Innuy a call. We have the right experience and technical skills to build a PWA that helps you reach your customers and increase your sales at the right budget and within your desired timeline.



Monday, September 23, 2019

Front End vs. Back End vs. Full Stack: What’s the Difference and Which One Do You Need?


If you’ve spent any time researching options for upgrading your digital presence or launching a new Web app, you’ve probably figured out the world of Web development has a lot of confusing jargon and tech-speak all its own.
While defining all the latest acronyms and tech-babble would take a Webster’s Dictionary-sized volume, we can simplify a few basic terms pretty fundamental to Web apps to help you find a development company with the right skills for your needs.
Three phrases you’ve probably come across are front end, back end, and full-stack. Let’s start by looking at the major differences between front end vs. back end vs. full stack when it comes to how a Web app works and also explore what each type of developer does.
Front End

Basics
The front end of a Web application is also called “client-side,” meaning it encompasses everything the browser (or client) displays or the user sees and interacts with (buttons, forms, links, etc.). 
Put another way, the front end of a Web site can be defined as the way it looks, how it functions, what it says, and how a visitor interacts with its components within the browser window. When a site visitor clicks a colored button, watches a video, or pauses to read a paragraph of text, all of those features of the site have been rendered and delivered to the user at the front end.
Structure
The “structure” of the front end could be explained simply as the content, graphics, and architecture (or organization) of the Web site. However, developers also include the code behind what the user sees when referring to the “front end” portion of a Web site because there is a definite distinction there from code typically used on the back end.
Languages
The coding languages that help power the front end of a site include HTML for page structure and organization, CSS for look and feel, and Javascript for interactivity. Javascript, in turn, includes various libraries and frameworks (React, Angular, etc.) that help provide different flavors of interactivity and can assist with connecting the front end with the back end.
So, in turn, a front end developer is one who works closely with graphic designers and writers and focuses more on coding the visuals and content of a site than, say, how data might be stored or where.
Back End

Basics
Conversely, the back end of a Web site is described as “server-side” because it typically includes all the data-driven functionality that runs on a Web server in the background of a site, which users never see. 
The back end of a site usually has three functions: data storage, connectivity, and communication. It’s the engine under the “hood” of a site, driving how a Web site interprets and responds to user interactions.
Structure
The structure of the back end of a Web site can range from incredibly simple to extremely complex, depending on user volume and site functionality. But every back end typically follows the same basic structure. Some type of database stores all the data used to power the Web site and make it useful to a visitor. A set of protocols and networking apps connect the browser to the server and power interactions between the two. And then a server and a set of server-side applications handle the site user’s instructions and inputs and communicate responses back to them.

Languages
The variety of languages used for the back end of a site or app is enormous and highly dependent on developer preference and skill as well as the site’s purpose, size, and functionality. A few of the most common back end languages include Python and PHP for server-side applications, SQL Server for data storage, and Linux, which is a type of server.
Javascript can also be used on the back end for simple functions, but the larger and more complex a site or mobile app is the more likely a backend-specific programming language will be necessary.
Back end developers, then, spend a lot of time thinking about the business needs of a site or app and how best to translate those needs into the server-side code to power that functionality. They worry way less about how a site looks to a user, preferring to leave that to the front end folks.
Full Stack 

Basics
“Full-stack,” then, means, essentially, the full package – front end plus back end. The term “stack” in this case refers to all of the layers of a Web site: look and feel, interactivity, structure, data storage and manipulation, connectivity, and response.
Structure/Languages
The unique combination of structure and languages that make up the technology stack of a Web site depends completely on its purpose, traffic, and functionality needs and choosing exactly the stack you need is an important decision
Full-stack developers are jacks-of-all-trades, with expertise and talent in both areas – front and back end. While they may have a focus or preference for one or the other, they deeply understand the technology and flow of the entire cycle of a Web site, from back to front and back again.
When hiring a developer or company to take on your project, it’s important to find one with the right focus for your particular needs. Innuy’s team of highly skilled full-stack developers can help you figure out the best solution and provide the tech knowledge to get it done.




Tuesday, September 10, 2019

8 Considerations for Hiring a Mobile App Developer


Is your business thinking of adding a mobile app to sell your products or enhance your customer service? You’re not alone. In the second quarter of 2019, there were almost 2 million apps available in the Apple Store alone, with 205 billion mobile apps downloaded in 2018. You may have already begun to search for the right mobile app developer to help bring your product to market. With so many options to choose from, how do you make sure you select the right mobile app developer for your needs?
Here are 8 considerations for hiring a mobile app developer to help make that choice easier.


Portfolio
The first thing you want to look at when evaluating a mobile app development company is their portfolio. Look for projects that demonstrate experience with the type of technology you want to use, the platform your app will run on and features similar to yours.
Look beyond the company’s technical prowess, however, and spend some time deciding if they have the user interface and design skills your app will need. How a user interacts with your app and its interface could make or break its success.
And make sure you don’t just view their apps’ screenshots or descriptions – actually download the apps and install them. Play around, click everything. Make notes of what features or workflows you do or don’t like to discuss with the developer later.


Past Clients


For added due diligence, check out reviews of the development company on sites like Clutch or Goodfirms, third-party services that rank providers and allow users to submit somewhat anonymous reviews and feedback. Read each review and rating carefully for any details of budget, schedule, or project management abilities. See if the review mentioned whether the company used subcontractors and how they performed. What you learn from these sites doesn’t necessarily have to make your decision to work with that particular developer or not, but being forewarned of potential issues means you can address them with the developer before signing a contract and perhaps help you negotiate terms.

Price
“You get what you pay for” is wise advice. Never let a low price quote be the sole reason you select one mobile app developer over another. Instead, look at the value behind the quoted costs – what does each development team bring to the table and is that value priced fairly? Will you end up spending more on added features and additional scope if you go with a low-cost developer with less experience? Does a higher priced team have more resources available to get your project done faster? More often than not, a quality, professional, and experienced team is priced higher because they’ve developed apps like yours before and know all the pitfalls and additional work required to bring your idea to market. Trust that expertise.
That being said, if you’re just getting your business off the ground your budget may be tight. In this case, hiring a high-caliber, knowledgeable mobile app developer located outside the United States could be a great option. Offshore developers have the experience and tech chops to work with you effectively, but charge much less than US competitors.

Partnership
Ideally, you want to find a mobile app developer who will be with you through all phases of the entire project: design, development, launch, and support. Look for a team who is interested in your business, and how your app will affect and grow your business, and can recommend solutions, ideas, and tips for integrating the app into your sales efforts, marketing plan, and long-term business strategy. Don’t go for a developer who just wants to get in, get the development done, and then move on to the next client. Instead find, one willing to build a partnership with you and your company that could last beyond this one particular app.

Package
It’s a good idea to make sure whatever mobile app developer you hire doesn’t just work in one technology or specialty. Does their expertise encompass a wide range of languages, platforms, or software? Or do they have access to sub-contractors or other partnering companies who can fill any knowledge gaps? This might be important if a critical feature of your app requires additional front- or back-end technology that can’t be supplied by a development company with a narrow skillset.

People
Building a mobile app is a big undertaking and can be a long, intense process. It’s important to know if you’ll be able to work well with the people on the team you hire because you’ll be spending a lot of time with them, either in person or remotely. Can they communicate well? Do they treat you with respect and make an effort to understand your desires and goals? Are they professional and have your best interests in mind? See if you can spend some time in the hiring process getting to know not just the team lead, but also some of the developers who will be working directly on your code to help answer these questions.



Platform/Project
Make sure before you hire a mobile app developer you do your research to know what platform and mobile devices you want your app to run on. Know your app’s requirements inside and out. Have a clear, defined set of goals you can provide each mobile app developer you talk to. Find out if the developer does strictly native apps or can develop cross-platform, which could make a difference if you want to reach all mobile users regardless of device.

Process

Try to discover if the development company has a project management process and, if so, what that process is, in detail. Knowing this will help you understand what to expect from them and when during the project, and also what they’ll need from you before they can move on to each next step.
If they don’t have a process? Think long and hard about whether they’re right for you. Even if your app is very small or low-tech, development can’t be done well when it’s done haphazardly. There needs to be a step-by-step development procedure with benchmarks, milestones, and measurable goals in place.

After reviewing these 8 considerations for hiring a mobile app developer, you may feel more confident about your ability to select the right one for your needs. Reach out to Innuy to learn more about how we meet and exceed each point with our mobile app development offerings.


Thursday, September 5, 2019

Innuy Named Top Developer in Latin America 2019: Clutch Leader Awards


Since 2012, our team at Innuy has been committed to development that gives clients the results they deserve to elevate their company. We realize how many choices are out there and thanks to a dedicated group of creative developers, we have been named a leader in our industry. 


Clutch, the premiere B2B research firm that categorizes business based primarily on verified client reviews, recently published their list of the “Top B2B Companies in Latin America 2019” and Innuy is proud to be a part of the Uruguay developers list.


“Their interest in understanding the business and operation of the company is remarkable. They strive to learn what the goal of our software is, which is admirable. That’s not something I’ve found with most other development partners.” – CPO, AI Company 


This award wouldn’t have been possible without the awesome clients we get to work with every single day. The feedback they have given to Clutch will only aid more success for our future clients and projects. Thank you to our clients for being honest and we’re happy we could make your business better.


Come check out some of the headway we have made in the development industry on Clutch’s sister sites – The Manifest and Visual Objects. VO is a visual display of portfolios that enables prospective clients to skip all the fuss and just lets the work speak for itself. You can also find how-to guides, industry-related news, and a research list on The Manifest. Both of these sites give insight into Innuy from different perspectives, so you can get the whole picture of us. 

The development industry is a challenging place, but our team at Innuy is always up for the challenge. Whether it’s working with AI or creating apps from scratch, we never give up on getting it right. To our clients, thank you for giving us that chance to create. Here’s to many more years of elevating your businesses.


Monday, August 26, 2019

AngularJS vs. ReactJS vs. NodeJS: Which Is Best For Your Needs and Why?


It’s safe to say that Javascript has firmly taken its place as the de facto language of the Web. It’s easy to learn, easy to use, and offers many opportunities for creating reusable libraries and frameworks to help speed up development and share resources. AngularJS, ReactJS, and NodeJS, arguably the most popular frameworks, all rely on Javascript yet are functionally different – they each bring a certain set of strengths to the Web development arena to help companies launch fast, scalable apps and Web sites.
Which of these three is right for your needs, though? It’s important to become familiar with each framework’s capabilities and how they can work for you before you hire a company to develop your app. So let’s take a high-level look at the major characteristics of AngularJS vs. ReactJS vs. NodeJS to help you figure out which one is best for you.

AngularJS

AngularJS, is an open-source framework developed by Google and launched in 2009. The reasons it has become a leading Javascript tool, with a huge developer base, include the following: 
  • Development is simple and easy because AngularJS simply extends your HTML client-side view. Your HTML attributes dictate which Angular controllers are used for which elements.
  • Angular’s module-based development model is fantastic for single page applications. Developers can organize their code in separate Javascript files, keeping that code clean and neat.
  • Automatic data synchronization is possible with Angular, which allows real-time testing throughout all stages of development using mock data.


AngularJS is best for you if: 
  • You’re building fast, complex, and rich user interfaces
  • You need clean, reusable code
  • Your app needs to be tested and brought to market quickly


ReactJS

React, is technically not a framework, but a library of Javascript tools and components. It’s a favorite of gigantic Web sites like Facebook that need to display huge data records quickly.
  • React’s components are translated into design elements that can be used over and over again for new apps or interfaces.
  • It’s virtual DOM refreshes only the critical part of a page displaying a data set, rather than the entire page at once, making response time to user actions lightning fast.
  • This in turn make a Javascript site uniquely SEO-friendly because the virtual DOM returned by React on the server side appears to the client side as a regular old HTML Web page.


ReactJS is best for you if:
  • You need to build multiple apps quickly or want a plug-and-play library of design elements that can be used across your suite of apps
  • You have a site where load speed is a critical part of your business model


NodeJS

NodeJS is technically considered a runtime environment rather than a framework. It’s powered by the Google Chrome Javascript engine and can run server-side on various platforms including Windows, Linux, Unix, etc.

NodeJS is best for you if:
  • You want to use Javascript on both the front and back end. Node.js on the server-side can listen to HTTP requests and directly read and write to a database. It also reduces the need to duplicate code on both the client and server sides.
  • You will need the ability to scale your apps quickly and easily as your needs increase.
  • You have a need for real-time video or audio streaming/encoding. Node’s data streaming capabilities allow you to do this with no hit to performance.
As you can see, each of these frameworks is a solid choice, depending on what you need from them. It’s important to have a clear understanding of your project, goals, and the technology at your disposal before you select the framework best for you.
If you need more guidance, however, call us! We can do a thorough exploration of your needs and make the best framework recommendation to meet them.