This year (2017), was very exciting in terms of technology. A lot of new concepts, tools and frameworks were introduced, laying the ground for software developers and entrepreneurs to introduce cool new innovative products in the following years. 2018 would be even more exciting, with lots of improvements in the already existing areas, that will (hopefully) make our lives better and more efficient. In this post, we will see what I believe would be the trendy topics for 2018.
Data visualisation helps us better understand the information and statistics our systems have collected. Having different views of the data, in different types of charts, like line charts, bar charts, pies etc, is really useful for anyone who has to make decisions based on data. Since users expect to have everything now on their mobile devices, we will see in this post how we can draw such charts. We will create three different types of visualisations, the first two with the awesome Charts library, and the third one will be our custom implementation.
One of the most exciting frameworks released with iOS 11 is ARKit. With ARKit you can incorporate 3D data and objects into the physical environment of the user. Moreover, objects can be interactive, offering a richer experience of the real world. Technologies like virtual reality and augmented reality are not that new, however, with smartphones becoming more powerful, there are fewer limits to what is possible. That includes improved cameras, better processors and a larger variety of sensor data. The new iPhones’ cameras offer a perception of 9 levels of depth and combined with powerful processors, making it possible to create rich and immersive worlds.
2018 is coming soon and there are already a lot of great iOS conferences scheduled. Usually, when looking for conferences, I was checking lanyrd.com. However, lately it seems it’s no longer maintained and there is not much info there. That’s why I’ve compiled a list by myself. As soon as there are new conferences announced, I will update the list accordingly. Feel free to point out some cool conferences in the comments, they will also be added to the list. Here’s what we have so far. Which of these conferences are you planning to attend?
Apps are becoming more and more complex. Users expect great user experience, even without internet connection. An app that is not usable and treats offline as an error will not leave good impression. Internet connection is something that is not always and everywhere available. That’s why we have to save the most relevant user data locally, on the device. While there are situations where you can get away with some caching mechanism (saving JSON/XML files locally on the file system), most of the time you would need some kind of a mobile database.
There are a lot of options for developers to do this. You can use the good old SQLite, Apple’s Core Data, or some other solutions like Realm or Firebase. In this post, I will share my experiences with some of them.
Maps are used in many mobile apps. That’s mainly because of the nature of the mobile user experience – users expect to easily find what’s happening around them. For us, the iOS developers, there are few options to provide maps for the apps running on Apple devices. The most notable are Apple’s MapKit, Google Maps, MapBox. All of them have pros and cons and frequently in our apps’ life on the App Store, there’s a need to replace one map implementation with the other.
Since all of them have different classes, methods and architecture, this can be a tedious task. We will need to make a lot of code changes and adjustments, which might introduce bugs and affect the stability of the application. There has to be a better way.
Graphical User Interfaces exist to enable the communication between humans and computers. The first graphical user interface was the command line (or the terminal), where users have to type explicit commands that the computer can understand. It’s not that suitable for the not-that-tech-savy people, but a lot of computer programmers are still using it today for performing some tasks. The introduction of the desktop user interface, brought the computers to the masses. It still required a learning curve, but a lot easier than the terminal. Next, the mobile phones revolution brought the multi-touch interface, where the finger was the primary point of interaction with the devices. A more intuitive solution, but still users have to be taught first. Also, there are different operating systems (OS) on the market, which have their own specific features – there isn’t a unified user interface that works the same on all devices.