*Note: The recommendations listed below (Adopt, Trial, Assess, Hold) are from the Technology Radar.
An alternative to the CocoaPods dependency management tool for iOS, Carthage is too new to have been used in any of our client projects. Dependency management for iOS has always been frustrating, and neither of these tools solves the problem completely. Our iOS engineers are holding out for the official Swift Package Manager.
Not many of us have used GitUp. We spend a lot of energy learning Git, so most of us don’t feel a strong need for a GUI tool. However, Kevin Conner, one of our senior iOS engineers, has been won over:
“I’ve used Git in the shell for years. I tried GUI apps for Git, but ended up avoiding them because they usually pretend that you don’t need to know what each Git command really means. GitUp doesn’t make that mistake. It exposes Git commands just as they are, but with context menus and one-key keyboard shortcuts. GitUp also adds what Mac apps are good at: visualization, in the form of commit graphs and diff views. I still use command line Git about half the time, but I leave GitUp open all day.”
Many teams at WillowTree are starting to shift to a test-driven process, and the next step is to measure code coverage. Pitest , or PIT, offers an alternative to traditional number-of-lines executed approaches to coverage. It mutates the application code under test and checks whether the tests fail. The idea is that this better measures the quality of your test suite. The concept is interesting and Pitest is worth checking out.
We have a lot more experience working with Swagger than RAML, but the tool of choice is less important than going through the process of thinking through API design. Principal software engineer, Tyler Romeo, explains:
" RAML is a useful tool for writing API specs, with a good range of tools used to generate documentation, tests, and samples clients. RAML competes with other API specification languages Swagger and WADL, but it’s hard to say if any one of these stand out. The main benefit of doing an up-front API spec is that it forces the developer to think about interfaces before writing code. This exercise is extremely valuable in planning out infrastructure. Even writing out example requests and responses in Markdown or on a whiteboard will give nearly as much benefit as using a formal language to plan out the API."
Bluetooth Mesh (Assess)
Bluetooth is so ubiquitous in devices now that the idea of creating a decentralized mesh network using the protocol seems like the logical next step. The potential uses are intriguing, from communicating with IoT devices in your home to standing up an ad hoc network in the office to transfer files. Mobile apps that take advantage of these networks in a user-friendly way could be extremely powerful.
The Internet of Things ecosystem is exploding with countless different development platforms, so it’s interesting that ThoughtWorks chose to mention this one. ESP8266 is a tiny Wi-Fi enabled microcontroller, further pushing the boundaries of what IoT devices are capable of. We have recently begun dipping our toes into the IoT market, and ESP8266 could be a useful tool.
While some of us have experimented with Realm, the self-proclaimed replacement for SQLite and Core Data, we haven’t used it in any of our client projects. Michael Thomas, one of our iOS engineers, explains why we should take another look:
“In the past few months, Realm has received several exciting updates that makes it a valid contender in mobile storage. In April, Realm gained fine-grained notifications, allowing developers to make precise updates to their UI instead of reloading the entire screen. Realm also received Xamarin support this month, which makes it easier to create a truly cross-platform application. It’s also worth noting that Realm intends to support the Universal Windows Platform in the near future.”
We’ll cover the last part of the Radar in the next post, Languages & Frameworks.
What do you think? Do you disagree with us? Did we miss something? Let us know in the comments!
Thanks to Kevin Conner, Tyler Romeo, and Michael Thomas for contributing to this post.