Skip to main content

Mobomo webinars-now on demand! | learn more.

apple-app

Apple continuously takes its technology to the next level. Among the many releases announced this week, Apple also made improvements to their app store. This update comes packed with new capabilities and tools to improve your app’s business and its engagement with new and existing customers. Let’s review the Apple App Store updates.

The App Store is home to over two million apps, Apple took things upon themselves and made major improvements, viewing quality to customers as its highest priority. “We love helping customers discover innovative, useful, and exciting apps on the App Store. […] Quality is extremely important to us,” Apple wrote.

According to Statistica, as of June 2016, Apple's App Store remained the second-largest app store with 2 million available apps. Just to put things into perspective, Apple receives 100,000 App submissions each week- insane! However, many of the apps are never downloaded or were probably built on an older version of iOS and were never updated or they just don’t work at all. So it was time for some App Store improvements.

Apple plans to remove “abandoned” or “problematic” apps which do not follow their current review guidelines from the App Store. According to the email, however, app developers obviously get informed about issues found with their app.

The App Store improvements don't end with the removal of apps that are abandoned and demonstrate lack of usage - they plan to eliminate apps that are spam related, or have lengthy names. Many stuff their app names with promising keywords which commonly results in inaccurate search results as some include keywords not directly related to their app in hopes of getting better search results in the App Store. As anyone can probably assume, having apps that are stuffed to the brim with keywords and having users search for certain keywords and to have the results not match what the user is inputting can create a rather frustrating user experience. Not only is it frustrating to the user, but the user is seeing no value in the search- so it’s a lose lose situation.

If an issue is found with your app, you will get informed by the App Store team. After that time, you have 30 days to submit an update in order to keep your app on the App Store. If you don’t fix all necessary changes asked by the App Store team, your app will be removed from the App Store until you submit an update. Apps, that already crash on launch will be removed immediately. The character limitation for app names from now on applies to any app that gets updated or newly submitted to iTunes Connect from here forward. So better make sure to prepare your app for App Store improvements. Apple updated their App Store Review Guidelines with details on subscriptions, SiriKit and iMessage.

The Apple App Store updates was inevitable, I think we can all agree, it was a long time coming. Many of the apps that live in the App Store haven’t been updated in years. In some cases, that might be OK, but because of various changes to iOS, that means that some apps either don’t work or are extremely buggy- so ask the question, what if your company made an app years ago, you didn’t think updates were needed, and now.. The App Store is forcing people to clean up their act.

So what does this information mean for your company’s app?

Once Apple starts reviewing apps, if they find something that does not abide by their guidelines the developer will receive a notice and have 30 days to make an update to the app, if no updates happen within 30 days then your app will be permanently deleted from the App Store. As you can assume, if your app is removed, this could be detrimental to your brand, you can read more on why your company needs a mobile app and the importance that apps contribute in your brand awareness.

If you think your app may need some improvements in order to meet the requirements of the Apple App Store updates, drop us a note.

 

Categories
Author

What is it that makes a good app great? It’s not really one thing that we can point to that makes an app amazing, think about it in terms of  the 86’ Mets- there's a lot of things that need to come together to make it great. First and foremost, a great app needs to be the best solution to solve a person’s problem. Second it has to be highly usable, intuitive even, and it should not confuse or upset people as they’re navigating through it. Lastly, it should surprise and delight people, in the same way a movie you had no interest in seeing becomes the best movie you’ve ever seen. A mobile app development company will aim to encompass all of these aspects, not just one or two.

Even though there are a lot of moving pieces to make an app great, I am going to focus on the surprise and delight aspect that makes a great app. It’s a broad term that could range from how an app transitions from one screen to another, a tiny detail that makes it easier to use, or an aesthetically pleasing appearance. With over 2 million appsavailable for people in the major app stores, it’s this tiny aspect that sets apart great apps from the rest of the noise. When it comes to the specific things that delights an individual it can be anyone’s guess, but there is a commonality between everyone who is using the app… they enjoy it.

Below are a few examples of the apps I think got it just right, they combine the problem solving, usability, and delight that makes up a great app:

 

Waze:

 

01_waze

 

Something:

02_something

Operator:

03_operatorAndroid Pay:

android-pay

Acorns:

 

05_acorns

Which apps did we miss that you think should've made the list? If you're looking for a mobile app development company, we'd love to build something great together.

Categories
Author

computer-screen-sass-web-design

When considering the architecture for mobile app development, one of the primary concerns of any team should be code quality. One of the ways developers ensure their code is error free is through tools called linters. Linters check code for style or programming errors, and can be configured to run at various times - as part of your build process, or via your text editor so you can catch errors as early as each individual keystroke.

When planning the architecture for a mobile app, you want to ensure its ease of setup for all team members who may be contributing. When looking at the default architecture of Ionic 2 apps, the tech stack looks like this: Ionic, Angular, TypeScript, Sass, Gulp, Cordova and npm. There’s one item in that list that stands out as depending on a very different architecture than the rest of the project: Sass. Sass is a Ruby gem, so without looking any deeper, you would assume that you’d have to have the Sass Ruby gem installed on your machine to use Sass for web design. This post looks at removing the Ruby on Rails dependency from an Ionic app’s architecture.

First of all, Ionic apps use npm, so we already have the foundation for a Node environment. It makes little sense to mix Node and Rails environments, if possible. This is well known in the community, and there’s been much work around porting Ruby gems to Node. One example is the gulp-sass Node package (which Ionic uses for Sass compiling). Gulp-sass is a wrapper for node-sass, which is a Node binding for libsass, which is a C port of the Sass precompiler, which was originally written in Ruby. As you can see, there’s been a lot of work around removing the Ruby dependence to compile Sass in a Node environment, and further, Ionic 2 apps are using this port by default.

In searching for a Node package for Sass linting, there are plenty of options. But we’re looking specifically for a package that lints using the Node version of Sass, not the Ruby version. If we look at the sass-lint GitHub repo, we find the following:

 

sass-lint

Huzzah! Sass-lint is easily installed using npm, and from there, you need to point it at a config file with your linting rules. The sass-lint npm docs provide examples of both a sample config, and the default config file, but, if you have a .scss-lint.yml file that you previously customized for Rails projects, you can quickly convert it.

Once you have the sass-lint package installed and a .sass-lint.yml file in your project, it’s just a matter of how you want to use it. There are two primary options for my local setup, but the beauty of this solution is that it doesn’t matter what your local setup is, it will work for you, and that’s our goal.

First, linting while you’re editing is the ideal scenario. Getting feedback per keystroke is not only extremely helpful, it allows you to fix the issue while you’re still in context, which is important. I use the Atom editor, and we can see from the sass-lint IDE integration docs that there is an Atom plugin available. There are also plugins available for Sublime Text, Brackets, WebStorm, Visual Studio, Vim, and more. After installing the plugin in my editor, I can see contextual clues as to what rules I’m breaking:

 

2-editor

 

Secondly, we can additionally lint our codebase as part of our build process using Gulp, which allows further control (for example, requiring developers to fix errors before they can check in code to Git, or displaying errors on GitHub before a PR is merged). Setting up sass-lint to run in Gulp is as simple as requiring the module, and then setting up a simple task:

 

sass-code

 

This gives us a nice output on our console, and you can obviously customize the Gulp configuration to meet your personal build requirements:

 

scss-code
I hope this helps see the value of code quality, making projects accessible to team members, how to get Sass linting setup quickly in Ionic 2 projects, and most importantly, how to do it all with Node instead of Rails. Happy linting!

Categories
Author

software-development

Modern communication abilities are available at the touch of a fingertip, software development teams have the potential for better team interaction than some workers who are working in the same office. Yes, team leaders are essential, but sometimes they can hinder the productivity of a team by micromanaging and enforcing rigid processes rather than letting new strategies evolve organically. Remote dev teams are separated from your office politics, and other factors that can slow the dev process. The good news is devs are result oriented and we all know it’s harder to manage every detail from a distance, remote dev teams encourage a mentality of, “here’s a task, tell me when it’s done.”

Transitioning to a remote software development company can be an intimidating. But if your software development and design team is on the same page, then it should work like clockwork. Your developers should be working with the same technology, the same process, and the same principles and if they aren’t well there will be more problems combining code if everyone is not working with the same values.

Let’s disassemble the methodology built around scrum development and then construct a framework for skillfully managing your dev shop.

 

Communicate, the team lead should have weekly interactions with the client whether thats onsite or over a teleconference. The lead can then communicate essential tasks and details to the web development team. When you set project goals with your client, always account for the planning fallacy. The planning fallacy suggests that we are given to an optimistic bias in estimating how long a task will take.  In the planning stage, everyone imagines ideal working conditions, and forgets murphy’s law: if something can go wrong while you're on a tight deadline, then it definitely will go wrong. To avoid overly optimistic deadlines for your project, try to rethink traditional software development techniques.  A popular method for deadline projection is “planning poker,” also called scrum poker.  With planning poker you incorporate each member of the team in estimating how long a task will take. Your team’s input is essential, but over time every system can break down. Your software development team will overestimate timelines to make their lives easier but the best thing that you can do is to anticipate factors that affect project-time estimations, and make reductions that you can accommodate.

 

Goals, the team lead for each web development team should be setting realistic goals.  As a team lead, don’t lay out a plan for the complete project development when you first meet the product owner,  stick to the essential building blocks of the project. Only discuss goals that can be accomplished in the short term. Maximize your time by getting ahead and moving on to the next task set, rather than trying to expand the product features. Ideally each member of your software development team is capable of analyzing their task.  They should be independently segmenting their projects and establishing goals for each segment.  This makes it easier to hold each member accountable for their segment of development and to evaluate their progress.

Shorten daily project meetings.  Have one quick stand up meeting everyday, we like to do ours in the morning so that we can discuss the work that needs to be completed for that particular day, it’s important to incorporate the whole team to promote focus and communication.  Be sure to report yesterday's progress, today's goals, and any roadblocks that you have along the way. This may seem like a needless chore, but it will prevent having tons of smaller check-up meetings throughout the day.  Having a daily standup meeting with everyone frees up your day to focus on pertinent issues with members of the team that actually need to be there.

 

Promote a self-organizing team, wherein team members can make decisions and adapt in a moments notice. Ideally individuals in the team can anticipate work and then start on the next project segment without being tasked with it. Train your team to grasp the depth of project goals.  In the ideal environment you're the team lead is open to answer essential questions, and devs can innovate in the process and recommend improvements.  The scrum master ensures that his team is getting necessary training and growing to improve the team’s collaboration.  Cross training allows software development teams to work on different skill sets that they may not normally have the opportunity to do so- for example, if one developer is a master at back end work, this would be his opportunity to work on front end work. In each iteration of the project, have devs work on new sections of the system that way they each get different experiences and are tested outside of their comfort zone.

 

Avoid over-engineering your software system, and trim away unneeded features.  “Feature creep” will happen when you add more and more features that go beyond your essential needs and over-complicate the product.  The features that you add to make your software better are often imperceptible, while the user experience is noticeably decreasing due to increased memory use and the need for more processing power. Attempting to anticipate and account for every problem is a poor development strategy. Your project goals will evolve and change direction as you go deeper into a project’s development.  Always incorporate simplicity into your design goal to account for these changes.

 

Programming features that are required by the user.  Don’t add a feature until it is absolutely necessary.  Strictly focus on keeping designs simple to maximize your efficiency.  Only incorporate a feature when you need it.  Always delay a decision until it is absolutely necessary for you to decide on adding a new feature. This is not procrastination, waiting allows more time to gather information about which features are essential.  Every design decision should be based on your needs, rather than working on a feature that you assume you will need. Waiting on additional features allows you to reduce your assumptions so that you are only choosing the features that are essential to your program.  Designs evolve as you get further into the dev cycle. If you end up taking your program in a different direction, then a simple design can prevent wasted resources on features that you will never use.

At the end of each sprint, you should have a tangible product increment. You should have a quick sprint review that happens quickly.  Reviews take minimal effort and preparation, use the review to demo and review the product features.  You should also keep a relevant burndown chart to continuously understand the progression of your project, and avoid wandering from your project deadline. The burndown chart is a graph representing how much work you have left on a project versus how much time you have left to do it.  Make the burndown chart efficient as possible. Recalculate estimates of project completion times if your estimates were off to maintain accuracy.

Review your team at each project’s completion, incorporating an analysis of the shipped product, the PO’s perspective, and a retrospective on the team’s effectiveness in delivering the product.  This is a good time to rethink and improve your software development process.  Highlight your accomplishments to supplement future plans.  Review the effectiveness of your team’s communication, and of your tools.  Identify areas of weakness.  All of these things are particularly important for remote software development teams, because it is easy to lose track of the details from a distance.

Categories
Author

design-thinking

Over the last year, I have spent my time studying product design in Stanford’s graduate design program.  Now a lot of people ask me, “what exactly are you studying?”.  The term product design doesn’t resonate with people like “graphic design”, “industrial design”, “architecture”, or “interior design”.  There is no sticky example of product design that helps people understand. And that’s because product design consists of any of the specialties that people think of when they hear the word design. But what I am really learning is “design thinking”. Design thinking is a process, a new way to innovate and solve problems from a human perspective.  

 

Historically, a technology centered approach or a business centered approach have been the two ways that people have captured innovation. A technology centered approach relies on years of scientific research to discover new materials or processes. A company then takes these new technologies and develops an application for them. This application is then tested as a viable product and put into the market place. Patents allow the companies to have a slight advantage for a few years before the rest of the marketplace catches up. But sometimes the product hits the market and is a failure. No one wants or has a need for such technologies and the years of research and development have been wasted.

A business centered approach to innovation takes existing technologies and invents new business models for distributing and selling the products. These new business models usually cut down on cost and increase profits for the company. They receive a competitive advantage over the market until their competitors switch to the new business model. This also does not lead to much innovation, same products packaged in a different way.
Design thinking is the third, relatively newer way to innovate and gain competitive advantage over the market. Over the past 25 years, David Kelley and IDEO (amongst other highly successful design firms) have shown the world the power of human-centered design and design thinking. The design thinking process starts with empathy and understanding the user on a human level.  The designer’s deep understanding of human needs allows them to create new innovations that solve the user’s pain points and create true value in the world. The entire design thinking process relies on quick iterations and prototyping that ensures a successful product.
design-thinking-steps

The design thinking process is made up of five different parts:

Empathize - Empathy is at the heart of design thinking. During this stage, the designer deep dives into the human experience. Through ethnographic style interviews, the designer will learn everything to know about the user, most importantly, what are the pain points they are experiencing. This will be the foundation of all design decisions moving forward.

Define - During the define mode, the designer takes all the knowledge they have about the user and they begin to focus their efforts onto a specific problem. The key deliverable during this stage is the “point of view”. A well defined point of view will not only state the problem but it will become the guiding principles for all design decisions moving forward.

Ideate - Ideation is the transition from defining the problem to exploring potential solutions. During this part of the design process, high-energy brainstorms are the designer’s best tool. Brainstorming leads to hundreds of potential ideas. Each idea is valued, no matter how wacky it may appear on the surface. (pro tip: wacky ideas help break conventional thinking and can lead to the most innovative products) At the end of the ideation phase, a few ideas are selected to explore further.

Prototype - The few ideas that have the most potential are then prototyped as quickly as possible. These prototypes should initially be low fidelity, spending just enough time on the concept that the user will be able to give appropriate feedback. It is important that the designer does not become too attached to their solution at this point or they might hold onto a bad idea for too long.

Test - Lastly, the designer takes their prototypes back into the world and tests them with real users. During testing, the designer becomes an observer, watching how the user interacts and feels about the product. This information will then be used for the next round of design thinking process. As a designer, you would either continue building out your current prototype based on the new knowledge or scrap it and start over (a little bit wiser for it). The worse thing a designer can do is become too attached to their solution before the users prove that it is a valuable solution and is solving real needs.

The design process is then constantly repeated for the lifespan of the product. If done correctly, the product will continue to evolve and add value to the world. Unfortunately, most companies stop using design thinking once they have launched a successful product, priorities are placed on other parts of the company, and innovation comes to a crawl.

The reason this happens is because design thinking is not easy. While the above process seems linear, clean, and straightforward, design in the real world is much messier. Daniel Newman from the Central Office of Design depicts the process below:

design-thinking-chartTo be good at design thinking you must be ok with ambiguity and uncertainty. You have to trust the process and you will be rewarded with a truly innovative product.  Every company should adopt some form of design thinking. It will not only give them a competitive design advantage (think Apple or Tesla) but it will be the tool that will solve some of the world’s most wicked problems.

Categories
Author

Rio-gold-medal

The Summer Olympic Games is a stage where more than 11,000 athletes from over 200 different countries from around the world came to compare their abilities, but it’s not just athletic prowess being showcased, there are a variety of technologies being used to enhance the athletes’ and spectators’ experience.

We have come a long way since the 1936 Berlin Olympics where the Games were televised live for the first time in history. The Tokyo Olympic Games were televised in color for the first time to the introduction of the virtual imaging in the 2000 Sydney Olympic Games. Needless to say, we’ve come come a long way and 2016 proved to be the most impressive year yet for the future of tech. Let’s take a look at the Rio Olympics as a means of understanding our technological advancements.

The Future of Tech

Virtual Reality

A large portion of Rio 2016 was recorded and displayed in virtual reality. The VR recordings were not shown live, they required a day of production before they were released.  There was VR footage of the opening and closing ceremonies and one event per day. VR’s goal  was to enhance the sensory experience by creating an immersive, simulated digital reality, which is difficult to comprehend without having seen it yourself.  The VR display of this year’s olympics  attempted to accurately duplicate the detailed physical environment within each event.  The depth of this sensory experience has never been accomplished before.  There will be over 100 hours of VR content, produced by Samsung for Galaxy smartphones, and Samsung Gear VR.

The Trekker

The Trekker weighs 40 pounds, and contains 15 raised cameras, which are worn like a backpack.  These compact and lightweight 3D cameras are being used to record events from the spectator’s point of view. Google and Rio 2016 worked together to capture footage from fan and athlete perspectives. Trekker’s are expanding the traditional viewer experience from covering sporting events, to capturing the entire space of the olympic arenas. Google is using their Street View technology to give a 360 degree view of each competitive event with precise detail.  You might notice these strange-looking eyeball shaped camera-backpacks wandering through crowds during this year's olympics.   

The Japanese Broadcasting Network

NHK produced 130 hours of 8k video footage.  Internationally the recordings will be shown in 4k and consumer televisions in Japan are not capable of displaying 8k footage.  NHK is showing their 8k footage at specific broadcasting stations throughout Japan.  It seems like unnecessary work as consumers are incapable of watching 8k footage from home, but NHK is using this year’s event as a test run in preparation for the 2020 Olympics in Tokyo.  They are planning on the permeation of 8k technology.

Solos Augmented Reality Glasses

The U.S. cycling team incorporated Solos Augmented Reality Glasses. The glasses contain a digital display which shows their heart rate, speed, distance and duration.  The Solos Glasses have a speaker which can communicate the cyclists’ stats as they ride; they also connect to a mobile app.  The Solos Glasses were funded by a Kickstarter campaign that raised over $100,000.

Drones

Drones are being used to improve video-capturing techniques. For certain events like rowing, which can be awkward to capture in remote aquatic areas, drones offer a new and dynamic viewpoint.  The olympic drones require a space of 34 yards for landing, and there have been administrative issues in determining no fly zones, and complications with fears of drones flying over or crashing into spectators.

The Omega lap counter

The Omega lap counter incorporates digital triggers to record laps for long distance swimming competitions.  A trigger is installed along the wall in each lane of the pool.  Swimmer’s make contact with the trigger as they turn for each lap; the trigger then transmits their lap count to a  submerged digital screen.  Prior to this technology, officials would count laps and hold up numbers for the swimmers to see. This tech is more efficient and lets the swimmers focus on their event.

GPS

GPS devices have been installed in each boat for all of the rowing events. The GPS transmits live data, supplementing event footage with specific tracking information. Each vessel permits viewers can keep track of miles per hour, direction and comparative locations. The incorporation of these simple technologies, is holistically transforming the Olympic experience.

Punch-tracking sensor

Canada’s boxing team has incorporated a new punch-tracking sensor in preparation for this year’s games.  Tiny sensors are placed under the tape that goes around the boxer’s gloves and wrists.  The sensor can record different types of punches, patterns, punch speeds and intensity.  The sensor records information to a mobile device.  Earlier technology required a viewer to manually click a button every time a punch was thrown.

Live video footage

While on the volleyball court, video footage was used to challenge a referee’s call.  A second referee used television footage to determine if the call that was challenged will stand. Referee’s are also using video footage to determine if their calls are accurate.  

Electronic scoring system

Traditionally in archery an official would determine the score by analyzing how close an arrow was shot to the center of a target.  This year a digital targeting system instantly determines the location of the arrow and the score. "When the arrow hits the target, the system shows the score on the big screen immediately," says Rio 2016 archery manager Luiz Eduardo Almeida. "It is extremely accurate and much faster."

Camera surveillance

Innovative camera technology is also being used for surveillance of the event.  Logos Technologies, a Virginia-based company, has equipped four weather balloons with 52 cameras.  Each balloon can surveil a distance of 55 square miles from over 300 meters in the air. The cameras are capable of rewinding live footage for eight hours.  They can also pan and zoom in order to focus on specific areas, or to target individuals in the crowd.

Payment technology

Visa has created a new form of payment technology specifically for Rio 2016.  Athletes will be able to make purchases digitally through the use of bracelets or rings.  The rings and bracelets work like contactless payment cards.  They can be identified through near field communication in order to make secure payments.  Four thousand selling terminals have been installed for vendors to work in conjunction with this technology.

The 2016 Summer Olympic games were yet another time in history where technology has been able to improve all the events not only for the athletes but for the spectators as well, whether you attended the Rio games, watched your favorite sports in prime time or through live streaming-- you were able to experience some of the new technological advancements one way or another.

Did you notice the future of tech while watching the games? Be sure to let us know!

 

Categories
Author

BlogINC5000-content

The Inc. 5000 fastest growing companies in the U.S. has been released. We are thrilled to announce that not only did we make the list but we placed 1,753 out of the total 5,000 companies.

Inc. 5000 showcases the 5,000 fastest growing companies in America each year and companies are ranked according to the percentage growth of their annual revenue over a three-year period.

“America’s fastest-growing private companies wield powers like strategy, service, and innovation. On this list you’ll find businesses that exercise the body and the mind, push the boundaries of virtual reality and 3-D printing, and delight fans with rock concerts and (in the case of the No. 1 company, LootCrate) superheroes. Thrill to these companies' amazing exploits--and learn a thing or two about the hard, real work,” says Inc.

Mobomo has been growing each year since our doors opened in 2009- this is the fourth year in a row that Mobomo has made the Inc. 5000 list. Not only did we make the national list but we are excited to be named in the 17 fastest growing startups in Washington, D.C.  

If you are interested in joining our team, it’s an exciting time to do so, be sure to check out our careers !

Categories
Author

/website-qa-testing-tips/

Website QA testing can be challenging. Let’s start off by answering what quality assurance (QA) testing is. When you develop a software product QA is a systematic process of checking to see whether a product or whatever you are trying to develop is meeting specified requirements. A vital part of any website project is the quality assurance stage. Prior to the launch, final QA testing ensures that your site is working according to your expectations and that your site users won’t be frustrated with any non-functioning pages. In fact many website and mobile application or software development companies have a team specifically devoted to QA.

Here are some tips that can help you make sure your site is ready to launch.

Know the Project:

Before you can represent the end-user and begin testing a website, you must know the project's background information. Find out who the target audience is and what primary goals they want to achieve from the website, if you don’t have this information it’s difficult to know how the user should expect to experience your site. It’s also important to familiarize yourself with the project’s scope requirements so you can ensure that everything has been delivered on-time and within the expectations of the client.

Stay Consistent:  

Always make sure that everything is consistent within a site.  Consistency is very important in graphic design and if you are not demonstrating consistency the website design could lose its meaning altogether. So unless a change is necessary it’s always best to try to convey information (e.g. highlighting a particular element or function) as planned by the design and development team. Some areas where consistency can sometimes be lost are in bullet points, images, shadows, borders, language, punctuation, and anything that is being used as pattern or functionality to provide positive user experience.

Take Your Time:

It’s important to make sure that you have patience and go through every last detail. If one person is performing QA on the site it's key to make sure you are being thorough and considering that you are one person looking at the product versus the millions of users that will look at it once you approve it to launch. Always think the biggest mistakes are those that are looked over by focusing on the small mistakes, ones that may not make an impact on user experience.

Consider International Users:

Everything is global, especially with all of the advancements in technology meaning, you should consider making your website to be able to use internationally. Two big considerations that you should consider are:

You always want your users to visit your website and have the best user experience possible, so be mindful to consider those who may not be in your timezone and make sure that everything can be easily accessible even if they are not in your time zone so that you have happy users.

When in doubt, CLICK!

Users will click on anything and everything on a site, it is important that while testing you make sure that everything that is supposed to be clickable is clickable and things that aren’t supposed to be clickable aren’t clickable.

Be Responsive:

Users will experience the site on every size, so that means while you QA you should test it on mobile, desktop and tablet. Images or text that fit in one screen may not look good on another screen size. Text can be orphaned, images cropped or reshaped in awkward ways, buttons or links may disappear altogether. Aside from images and text showing up differently- Unexpected things can happen with functionality. Functionality may not be able to hover over  to access to info or places. You can always use Google Analytics to decipher what your target audience uses most whether that be desktop, tablet or mobile device but moral of the story, the issues can be endless when making sure your website is responsive on each device so it’s always best to be thorough and test each device.

We would love to hear about other tips that you may use during your QA process!

Categories
Author

 boulder-web-design-development-company

In 2009, we opened our doors in Washington, D.C. Since then, we’ve launched over 100 products, hired dozens of incredibly talented team members, and even acquired a company. It’s been an exciting, challenging, and “fully charged” seven years, to say the least. Now, more than halfway through 2016, we’re looking for our next ‘big move’.

We’re excited to announce we are officially opening our second remote office in the Boulder / Denver, Colorado area.

We’re thrilled about coming to Boulder for a number of reasons. Below are just a few:

Technology Hub:
Colorado - and Boulder in particular - is home to some of largest tech companies in the country. When we see companies like Arrow, Rally Software, and Ball Aerospace all headquartered in Colorado, we know we’ve found the right place.

Other tech giants have also carved out a small place of their own in Boulder. Google is building a 4-acre campus, IBM employs nearly 3,000 Boulderites, and Twitter is planning to expand their existing presence.

We love tech. And so does Boulder.

Clients:
For starters, we love working with startups and the disruptive ideas and concepts they bring to the market. And since Boulder has more high-tech startups per capita than any other city in the country (not to mention a healthy venture-capitalist community), we knew we couldn’t sit idly by.

Boulder’s vibrant startup community exists outside of coworking spaces, too, with events like Boulder Startup Week, dozens of meetups, and (of course) Techstars.

In addition, the Colorado front range boasts a wealth of government agencies: the National Center for Atmospheric Research, Buckley Air Force Base, and the National Park Service, to name a few. We’re passionate about solving complex engineering problems for government agencies. And we knew wherever we expanded, we needed to be in the presence of these departments.

Workforce:
Within a 50-mile radius of Boulder are Colorado’s two largest universities: the University of Colorado and Colorado State University (not to mention the half dozen schools in the Denver metro area). In fact, CU-Boulder sits among the top five US universities in the number of alumi they’ve sent to space. And after all, we have a thing for NASA here at Mobomo.

Needless to say, there are some incredibly talented and well-educated folks in a relatively small density area. We’re always looking for awesome people to join our team. And we bet we’ll find some here.  

Explosive Growth: 
Simply put, the front range is booming. Colorado is one of the fastest growing states in the country. Hundreds of companies are starting - and maturing - here.

If you are looking for a Boulder web design and development company, we’d love to connect; we are in the business of turning your ideas into reality. We’re excited what our move to Colorado will bring us. If you’d like to learn more, attend one of our Colorado meetups, and don't forget to follow us on social media to stay up to date - who knows what's next! 

Categories
Author

drupal-web-developer-becoming-successful

Years ago, I discovered what it was that I was missing in web development. I know we have talked all about Drupal, things to discuss before migrating to Drupal 8, and a guide for Drupal project managers but what makes a successful Drupal web developer?

The first Drupal website I developed was a combination of downloading modules, hacking themes, and generally having no idea what I was doing. But it was fun and I was learning what Drupal development was about. I recall it was just after Drupal 6 was launched which seems like it was eons ago.

Looking back, I wish I could go back and yell at the developer I was then for not doing things a better way. Knowing what I know now, my development skills have dramatically improved and I try very hard to stay within the Drupal Best Practices documentation.

Here are some of my tips for being a successful Drupal web developer.

Don’t hack core!

This is basically one of the cardinal rules of Drupal development. Hacking core files of Drupal means updating the site will likely break everything. Also hacking modules means that you won’t be able to update them for bug fixes and troubleshooting.

Learn to use the Drupal API

Eventually, you’ll find the need to write functions and do crazy things with your code. The fun part of developing for Drupal is that the API rocks. I mean, really rocks. There are so many cool functions and code snippets for doing things that would otherwise take you forever to write/code yourself. Learn to use things like node_load(), path_to_theme(), node_save(). These three functions are simple but extremely useful. Use case: I recently wrote a module that went through 20,000 nodes for a Drupal website, retrieved data from another website using their API, brought that data back to my project site, then saved the data using node_save(). Doing that by hand, no. It would take weeks on top of weeks. The script I wrote took 90 seconds. Boom. Drupal Magic.

Contribute to the Drupal Community

Whether you contribute code, testing, or bug reports, Drupal thrives off its community. This is something that I failed at...for a while. I simply felt that I wasn’t good enough to contribute to discussions or code. However, something as simple as reporting a bug is so useful to the community. If you’ve used a module and had an issue with it’s basic usage, report it. Search for the bug you’re reporting first, it could be that it’s a duplicate issue. Please please please search for the issue first. Don’t just be a lazy Googler.

Learn Version Control

This may be one of the most valuable takeaways from this post. Version control isn’t just used by the Drupal developer community, it’s used by coders everywhere for a wide variety of things. Personally, I use Git for version control, but there are many other options. Some people find it very daunting to do things in Command Line or Terminal (that thing that looks like MS-Dos for those that don’t know). It’s really very simple though. If you learn version control, your value to a company will go up significantly. I promise. Here are a few sites that might help:

Learn Helpful Shortcuts

For a long long time, when I setup a Drupal website, there was a lot of downloading, decompressing files, placing modules and themes in the correct place, then I could finally start to work on the project. Enter Drush. If you are using Command Line/Terminal - Drush will be your best friend. Using Drush, you can download Drupal, setup themes and install them, download modules and install them, update Drupal, backup your site, and a slew of other things using very basic commands. I can tell you it has cut down my setup time to just a few minutes. Read up on Drush here.

Setup Local Development Environments

Gone are the days where you had to have a server to work on a website. There are some very easy to setup tools that you can use to setup your site on your desktop or laptop so you can work on it anywhere without the internet. I once worked on a local website for 2 hours while my train was stuck in a cellular dead zone in Virginia. Try using MAMP to setup your local environment so you can get back to coding and work on your sites from anywhere...including the middle of nowhere!

Attend Conferences and Meetups

Speaking for myself, I learned Drupal web development from a hand full of very gifted developers over a long period of time. It never hurts to find a developer willing to share some knowledge with you. The best resource to learn Drupal is going to conferences and meetups to hear people speak on a wide variety of topics. Maybe you can even take some training. Drupal Con is a big one. My favorite conference was the 2011 Do It With Drupal (DIWD) conference by Lullabot. My mind was blown every 60 seconds. I came back understanding more about development skills, Drupal development, and the future of the web. Here are some highlights from that conference.

Don’t be Closed Minded to Other Technologies

I love Drupal. We know this. But I also love WordPress. I can hear some developers now: What’s that you say! Traitor! Burn him!

Calm down people. Being a web developer doesn’t mean I only want to do things my way or I only want to use one technology to do things. You need to learn when and where specific software and tools will work best. If someone says to me “I want a website, but I’m not that great at understanding computers, but I do want to write blog posts and post them,” then I’m likely gonna recommend WordPress. But if someone comes to me and said, “I want a custom website where I can load in videos, pictures, and other content. I also want to sell things, etc,” then I’d likely recommend Drupal.

Having said that, there are other options outside of Drupal and WordPress that I’ve also used from time to time. Flat-file CMS’ are popping up everywhere. they are lightweight and easy to setup. One of my favorites is GetSimple. Another one is Pico.

Hopefully this will help someone figure out what they need to learn to be more successful at Drupal development. As always, feel free to contact us if you have any questions. We love working on Drupal projects.  

Categories
Author
Subscribe to