If you are building a mobile application of any sophistication, you are likely to need some services to support your app. You’ll need a way to distribute your app for testing prior to submitting to the app store(s), as well as analytics, error logging, crash reporting, and possibly user and data management services. Of course, you could write these services yourself and provision servers to host these services, but why do that when you don’t have to?
Machine learning (a field of artificial intelligence) is a rapidly expanding technology that we see in use more and more in our daily lives. It is used to give us more accurate results when we do an internet search, suggest products to us when we are shopping, and offer diagnoses to our maladies.
Medicine and health care are big business, particularly in the United States. In fact, US consumers spend over 1.5 trillion dollars1 on healthcare related expenses each year. Over the last few years, more and more apps have become available that help you monitor and improve your health. As they say, there’s an app for that.
Software Engineering is about more than just writing code. It is a complex process that has a lot of moving parts. Requirements gathering, planning, testing, deployment and source control management are just a few of the pieces to the software engineering puzzle. So how do we manage all this complexity? Software methodologies come to the rescue.
On a recent project I was tasked with creating a private CocoaPod to be used by several internal iOS applications. As I did my research to do this, I found that the information was spread across several sites and not 100% clear (the CocoaPods site’s documentation could use some love in places). I am taking this opportunity to assist those that follow to create, organize, test and distribute a private Pod. I’ll also throw in a few tips for general pod development.
Software development and software engineering are booming right now. Engineers are in high demand and commanding high wages. There are simply not enough software engineers available to fulfill the needs of companies looking to build applications and services.
While it seems demand for software developers will be strong for the foreseeable future, how long will it be before these engineers are replaced by the very software that they are tasked to create?
Apple and Steve Jobs started the smart phone revolution. Just 7 short years ago we had the first iPhone, a technical marvel in its day. The craftsmanship of not only the device but also the iOS operating system was a thing to behold. Apple continued with its excellence in both hardware and software design for years. Unfortunately, the wild ride has ended, at least for the moment. While the hardware has kept up relatively well (although there is not a heck of a lot of innovation), the iOS operating system has, sadly, regressed.
Here at Grio we strive to constantly improve the quality of our software. But what exactly does that mean? Is there a way to measure software quality? What are the metrics? What are the tools needed for this endeavor?
On a recent project, we needed a widget that would allow users to select a photo from their Facebook albums. “Surely the new Facebook Android SDK must support this.” I thought. Alas, my hopes were unfulfilled. “Well, I bet there is a third-party solution for this!”, I surmised, but again, my search was for naught. At this point I decided to roll up my sleeves and do it myself.
As a software consulting firm, Grio strives to provide high quality, high value software to its clients. We embrace an agile software development methodology based on Scrum. This iterative approach provides our clients with flexibility to adapt and change their product over the course of development as discoveries are made while using the software.
This flexibility can prove challenging when providing up front estimates regarding project costs. The problem arises that providing an estimate that is too high may lose you the contract; Estimating too low can result in several outcomes: