Author: Michael Blood
3 Reasons Mobile App Developers Need Prototypes
It all starts with an idea for mobile app developers. The idea is the beginning of the journey towards watching an app become functional and solve a problem for the end-user.
As you go through the development phases, you’ll need to take your idea and bring it to life. This means figuring out how the app will look, feel, and function. With app prototyping, you gain a better, more cost-effective solution to bring your idea to life.
There are many reasons why mobile app developers need prototypes. Let’s look at a few of the most common reasons.
Saves Time and Money
The biggest reason anybody chooses to do something is to save time or save money, especially when developing a new idea. App prototyping helps with both. You will be able to bring your idea to life without going through the full development, which takes up time and costs money.
Consider the worst-case scenario. You hire a full app development team and they work around the clock to bring your vision to life. Then, once the app is completed, you realize the design isn’t as appealing as you hoped or it simply doesn’t work as you have envisioned. Now, you have to go back and fix things, which cost more money and more time.
With app prototyping, you can see your idea come to life for a lower cost and it will be completed much faster. Once you see the app and the functionality, it’s much easier to make changes before you launch the app to the public.
Provides a Way to Vet the Idea First
You’ll gain a better way to fully vet your idea before sending it into the expensive and time-consuming development phases with app prototyping. Instead of releasing updates after you’ve launched, you’ll be able to avoid costly issues and fix problems early on.
Prototypes can be tested and adjusted multiple times before being fully developed. You don’t have to go into the coding stages before you see how things will work and look. This means you get to vet your app before it’s ever really created.
Gain Incredible Feedback
If you want to know what potential customers and investors will think before spending the money to fully develop your app, a prototype is for you. With an app prototype, you can gain feedback from your target market and potential investors, which can be invaluable.
Some investors might have contingencies, which include specific changes they believe will benefit the performance of your finished app. If you’ve already developed the app, these changes can be very expensive and time-consuming to make. With a prototype, you’ll likely be more open to the feedback of investors and potential customers since the changes will only incur minimal costs.
There are several reasons why mobile app developers need prototypes. These three reasons are just a few of the main ones. You will also gain many benefits and the ability to see your idea come to life without fully investing in the entire development of an app.
App Prototyping vs. Full App Development
When it’s time to create an app for your startup business or for an existing business, app prototyping offers an excellent starting point. The prototyping stage allows you to make changes before you get to the final stages of full app development.
It’s important to compare app prototyping and full app development before you move forward. Developing your app won’t be cheap and you want to make sure you invest your funds wisely. Let’s look at app prototyping vs. full app development to make it a bit easier to see the differences.
What is App Prototyping?
Taking an idea for an app and showing its value can be done with app prototyping. It gives you a clean tool to use when pitching investors without a completed final product.
App prototyping is basically a model of the app you want to create. It gives you the ability to test the app before you spend time and money on full app development. Many companies use app prototyping to show interested investors the concepts and ideas before complete development.
When you choose app prototyping, the cost will be lower and you will be able to see the functionality of the app. This stage in development allows for changes to the design, the functionality, and pretty much anything else involved with the app. It takes your idea from a sketch on paper to an actual visualization of the app complete with functionality through a working layout and design.
What is Full App Development?
When you choose full app development, you might have already gone through the prototyping stage in development. If not, you will likely be hiring a team of developers and going through the phases of developing, testing, and launching your app.
This is great if you already know what you want and you have the funds to support full app development. However, if your app is simply an idea and needs to be tweaked along the way, app prototyping offers a less expensive way to get a functioning prototype ready.
Benefits of App Prototyping
1. Very Cost-Efficient
When you start your project with app prototyping, you’ll be using a more cost-efficient option. The process gives you the ability to solve problems during the beginning stages of the process instead of waiting until the end.
It’s easier and less costly to make changes during the testing phase compared to making changes to a nearly finished product.
2. Ability to Pitch Investors
Maybe you have an idea, but you need funding. Using app prototyping allows you to create something you can show potential investors before going through the more expensive full app development process.
3. Exploration and Improvement
When you develop an app, you might find ways it can work better or you might want to change the functionality along the way. App prototyping offers an easier way to make changes throughout development before you’ve paid for a nearly complete app.
When looking at app prototyping vs full app development, for many, app prototyping offers a better option. You likely have the goal of developing a completed app, which app prototyping can lead to. However, starting with a cost-efficient solution like app prototyping offers a better solution for most companies looking to develop a new app.
5 Types of Application Design
5 Types of Web Application Development Programs
Shopping Applications
Portal Application
Dynamic Applications
Animation Applications
Static Applications
Sending Email on Servers on AWS (SES)
Sending email from PHP is often automatic and simple if setup on a traditional hosting account – however the mail() function in PHP does not work on AWS EC2 servers. AWS requires that you use the SES service. (Simple Email Service).
There are several tutorials that walk you through getting your account setup
To send email FROM your email domains you will need to setup and authorize the domain (See TIP #1 below)
https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-domains.html
The step that is often missed is that outgoing email in new accounts is allowed ONLY to the email addresses you verify – to verify individual emails addresses.
https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-email-addresses.html
To enable your account to send email from your verified domains, and to ANY email address, you will need to get the account removed from the sandbox mode (check the Email Sending -> Sending Statistics page for a message) Click the ‘Request a Sending Limit Increase’ button to ask to remove the account from the sandbox. (here is a tutorial –
https://docs.aws.amazon.com/ses/latest/DeveloperGuide/request-production-access.html )
TIP #1: I would suggest using route 53 for DNS for your domains, as it is a simple couple button clicks to authorize the domains, and get DKIM setup
TIP #2: make sure that you have posted a privacy policy or an email policy on your site – which explains how you send emails and handle their email information. Include a link to your policy in your request for removal from the sandbox.
AWS – Change your Root Password
It is not a good idea to use the Root account to manage and work with your AWS account. Ideally you have setup IAM user accounts with only the required permissions.
However occasionally you need to update your Root level account password. This video quickly shows you how to do it
(if this video is low quality, try opening it full screen and playing it again, the video is short and may be done playing before YouTube can catch up with downloading a higher quality version)
AWS – Disable IAM User access to Billing Console
In an AWS Account, Root users can create IAM Users with Account Administrator Permissions
However those users do not have access to the Billing Reporting.
A Root user can enable this though – follow the steps in this video
(if this video is low quality, try opening it full screen and playing it again, the video is short and may be done playing before YouTube can catch up with downloading a higher quality version)
AWS – Enable IAM User access to Billing Console
In an AWS Account, Root users can create IAM Users with Account Administrator Permissions
However those users do not have access to the Billing Reporting.
A Root user can enable this though – follow the steps in this video
(if this video is low quality, try opening it full screen and playing it again, the video is short and may be done playing before YouTube can catch up with downloading a higher quality version)
Matraex Launches Custom App Partner Program for Agencies and Advisors
Matraex has long provided custom app services for Marketing Agencies, Business Advisors and IT Service Companies.
These partners are an important part of our business, where we grow primarily through the referrals they bring us.
We have created a Partner Program to help formalize these relationships.
The partner program guarantees our Partners trust, a timely response, assistance identifying projects and revenue opportunities in their current client base as well as many other benefits.
To help our potential partners find out more, we launched a partner site at https://partner.matraex.com
If you’d like to find out more about the program, call Michael Blood at 208.344.1115 x 250 or email at michael@matraex.com
Moving PHP sites to php 7.2 – undefined constants used as a string
PHP7.2 and above will no longer allow Undefined Constants
According to the “Promote the error level of undefined constants” section of the PHP 7.2 Backwards Incompatible Changes Document
Unqualified references to undefined constants will now generate anE_WARNING
(instead of anE_NOTICE
). In the next major version of PHP, they will generate Error exceptions.
There have been many changes to PHP over its many versions – For Matraex’s use of PHP, each version has been mostly compatible with the previous one with only minor changes, until a major decision affected one of the ways we deliberately used what we once called a “Feature” of PHP. (For a full list of incompatible changes look at the Backwards Incompatible Changes sections in the PHP Appendices )
On March 5th, 2017, Rowan Collins proposed to deprecate bareword strings. In PHP 7.2 the messages throw an E_WARNING message and in PHP 8.0 it will through an E_ERROR.
PHP has always been a loosely typed language which allows flexibility in many ways, And we had used this flexibility in order write code in a ways that we belive made it more legible, maintainable and supportable within our coding style. With this new change, hundreds of thousands of lines of code will need to be rewrittend before we can put it on a 7.2 or above server, keys may be difficult to search, we will have inconsistencies in usage of keys depending on whether they are inside or out side of quotes.
Take this one example where lines 1, 3 and 4 below would work, but line 2 would throw a warning in 7.2 and would through an error in 8.0.
- echo “Hello, $user[firstname],”;
- echo “Hello, “.$user[firstname].”,”;
- echo “Hello, “.$user[‘firstname’].”,”;
- echo “Hello, “.$user[“firstname”].”,”;
Matraex would have previously preferred to use methods 1 and then 2, as they require fewer quotes and a search in our IDE of ‘user[first’ would have highlighted both uses.
Mr Collins did evaluate both sides of the decision and wrote a bit about it. He described that “The value of keeping the current behaviour would be for programs written to deliberately take advantage of it”, however he really dismisses that value and gave a stronger argument undefined constants can “mask serious bugs”.
I agree with each of the arguments and our 7.2 scripts will all comply with this new syntax requirement. However, I disagree with the way the solution was indiscriminately executed. A more considerate solution would have been to create a configuration option in PHP to control the requirement and allow developers and system administrators to continue to ‘deliberately’ use ‘undefined constants’. This option would also allow existing stable programs to continue to take advantage of the other features of PHP >=7.2 without a significant refactor. Perhaps the Impact section of the article could attempted to get more feedback from users that had deliberately made heavy investment in this feature.
To be more direct here is my request: PHP developers, please create / allow a configuration option in PHP which will allow undefined constants to be used as strings.
Changing existing code across the 10 + years of PHP projects will take thousands of hours to modify and test, and that is just the projects that still exist. This is a barrier to upgrading to PHP 8.0.
Arguments for a configuration option
- Millions of lines of code which deliberately use undefined constants as string (more likely billions or trillions – I probably have close to one million myself overtime)
- My random belief: PHP should enforce “standards” on those that want or need them, and allow experience users to explicitly choose to ignore them.
- The configuration option would be disabled by default to address all of the problems mentioned in ‘the problem’ section of the article
Dealing with undefined constant warnings
Now we get to more technical area where I document some of the methods we have used to find code that needs to be updated for PHP 7.2 code.
1) Use grep to find all uses of the code
This code finds ALL uses of lower case strings without quotes – because our standards do require constants to be in upper case
grep -Rne ‘\$[A-Z\_a-z]*\[[A-Za-Z\_]\{1,\}\]’ *.php
2) Suppress E_WARNING messages
This is a bad idea, while it will certainly make it so that your code continues to work in 7.2, it will not fix it going into 8.0, and this WILL mask other issues that you do need to know about.
If you want to learn mroe about this, take a look at this discussion about it on Stack Overflow. Definitely read the comments about hiding warnings to get a better feel for it.
3) Create PHP configuration options to make provisions for undefined constants
These options would require the good work of a C developer that works on the PHP source. Some of these ideas may just work as described, they really are just a good start (or continuation) of a discussion for features which could be implemented. I don’t have a ‘bounty’ system but if you are interested in creating any of these options, or would like to group together to coordinate it, please contact me.
- undefined_constants_string_level – Have a PHP directive which declares what E_ level all undefined constant warnings should – default in 8.0 can be E_ERROR
- undefined_constants_string_lowercase – Allow users to configure options which would allow only lowercase (or mixed case) constants as strings – which would allow / reserve upper case for use as constants.
- undefined_constants_string_superglobal – Allow undefined constants to be used when attempting to reference any key to a super global array (such as $_POST[mykey] or S_SERVER[HTTP_HOST]);
Matraex Releases FrameTurn SaaS
Matraex Announces the Launch of FrameTurn Application to Improve Optical Frame Sales – for BridgePoint Optics
Boise, Idaho (28 July 2018) — Matraex, Inc. (https://www.matraex.com) announces the launch of FrameTurn (https://frameturn.com) a custom application designed to help independent optometry practices use data driven techniques to enhance their business. The app was designed for Bridgepoint Optics (http://www.bridgepointoptics.com), an optical industry sales and business consultancy for independent eye care practices throughout the U.S.
Adding an on-line application provides a Software as a Service (SaaS) that extends their ability to help the optical industry, giving Bridgepoint an additional, marketable service it can provide to its own clients.
Matraex has developed a powerful on-line tool for Bridgepoint Optics that provides their clients with information that can help them make purchasing decisions in a timely and profitable manner.
“Offering a Software as a Solution (SaaS) product to its clients provides BridgePoint with additional business opportunities,” says Michael Blood, president of Matraex, Inc. “Developing a tool of this type for businesses is what drives us. We are excited to see FrameTurn go live over the next few weeks.”
From Bridgepoint’s perspective, the FrameTurn application provides an additional tool in their existing tool box of services that they can offer. It also gives them a significant edge in marketing to the vision care industry. Most importantly, however, it provides a powerful analytical tool designed to increase their clients’ bottom line at a very affordable price.
“Independents have traditionally relied on their instincts, or even guess work, rather than data to make purchasing decisions about frames for their optical shops. We’re excited to end all that! With FrameTurn, these eye care practices will have the ability to record and automatically analyze past and existing sales in various ways to determine trends that can increase their profitability,” says Dr. Rook Torres, co-founder of BridgePoint Optics and FrameTurn.
About Matraex, Inc.
Matraex, Inc. (https://www.matraex.com) is a Boise-based software and application development company. The company has served many local and national organizations for more than 15 years, including the Better Business Bureau, Hewlett Packard, Madison Square Garden, Penn State University and the Idaho Hospital Association. The services include custom designed mobile applications (iOS, Android, etc.), as well as website development and management.
About BridgePoint Optics
BridgePoint Optics (http://www.bridgepointoptics.com) is an optical industry sales and business consultancy. For more than 25-years, they have specialized in the growth and development of independent eye care practices throughout the U.S.