Nowadays, there is no so huge hype around cloud computing as it was several years ago. On the other hand, cloud development is a robust part of IT industry with its own history and trends. For now, Software as a Service is not just about launching the code in the cloud and scale it in real time. Most Cloud users deploy code weekly or even daily, there are questions on Testing/QA processes, Production/Deployment workflows and more strong software security approaches. Elasticity of cloud structure the key factor to implement Big Data project in the cloud, as well as, storage, analytics and batch processing application. Large companies want more control on their Software as a Service solutions. They can build their own cloud infrastructure based on one of open source solutions. Small teams rather use well-known public clouds.
Cloud development principles
A lot of projects are moving to the cloud these days. Developers face a common set of challenges. There are basic principles to achieve the best results. Document architecture and deployment infrastructure. Designed solution should be highly cohesive and loosely coupled.
New 8-th major version of iOS platform [https://www.apple.com/ios/] was officially released a couple of months ago. Anyway, it’s the biggest event for Iflexion iOS Developers. For now it’s installed on 78% of all apple devices. So huge percentage allows us to talk about it as a standard. Let’s research it’s new cool features and API.
Before this update, iOS Development workflow pushes software developers to compose UI in one or two modes: portrait and landscape. Now, Auto Layout is a new approach to design in more universal and robust way. The main idea is to describe layout as a set of relations between UI elements. Such scheme is suitable for iPhone and iPad, portrait and landscape. As you can see, it is completely different approach. Look into it as soon as possible.
The main idea is to split the code into 2 sets of classes: Models and Views. A Model is responsible to handle all data of specified component. It loads, saves and represents it for a View. A View is rather a controller to handle UI, render widgets and specify actions for a Model to provide any changes. You can use any front-end HTML templates system within Backbone Views.
As I said above, Backbone is just a set of approaches to organize complicated project in robust way and a bunch of source code to help with it.
Nowadays, there are a lot of businesses and startups are growing up in the form of Software as a Service (SaaS). Recently, Facebook giant bought Parse [http://parse.com] innovative startup in this field. Parse is a back-end as a service. It is not a ready to use product for the concrete client, but a service for software developers that can help a lot. It can speed up the development process and reduce costs, as it solves the problem with back-end or server side in the most cases the project needs. Parse fits to a demo or a prototype ideally, because the main goal here is to build first working version as soon as possible with minimum resources.
JetBrains team released new ReSharper 9 version [https://www.jetbrains.com/resharper] in December, 2014. It is a number one tool for any professional programmer in the .NET Development world. If you have not been using this amazing tool yet, you have a very straightforward way to boost your coding process. It can be improved in several times.
Visual Studio on steroids
Technically, ReSharper is a plugin for Visual Studio IDE. Generally, Visual Studio provides all needed tools and features out of the box. Everybody accepts that it is a professional IDE. Visual Studio supports full-stack software development process, has integration with databases, NuGet package manager, huge set of programming languages, compilers and platforms, both debugging and testing features, syntax highlighting and basic code navigation. Resharper is specific for .NET Development.
In 2014 was released first officially stable version 1.0 of the Meteor [http://www.meteor.com] most cool web application framework nowadays. Software developer have been using a lot of web application development frameworks and libraries in development and production for 10+ years. Why Meteor is so excited? It’s not one more platform in a row or new pure marketing buzzword. It’s rather a new approach to the construction of the project. This technology provides to Iflexion a new quality of Web Application Development process.
Recently, there was released version 4.6.3 of very popular game development platform Unity [http://unity3d.com]. As it is multiplatform engine, it supports all major mobile architectures. That makes Unity one of the best Mobile Solutions in game development area. Target application can be built for Android, iOS, Windows Phone, OS X, Linux and Microsoft Windows. Besides, it also supports such pure game platforms, like Xbox, Wii and PlayStation. Technically, any Unity application uses OpenGL and DirectX. Unity platform is widely used by all kinds of game development companies from huge monsters (EA, Blizzard) to tiny teams creating indie-games. Development version of Unity3D package is free, so, anyone can download and install it to start new game project. There is modern IDE with intuitive drag-and-drop interface that running both on Windows and OS X. It allows developer to concentrate on the aspects of the game instead of pure technically points of the project. You can debug the game right in the IDE. It doesn’t need any mobile device or emulator to create Mobile Solutions by Unity3D engine.
Mono development platform
Unity is based on Mono platform [http://www.mono-project.com]. It’s a bit modified version of .NET framework. The main feature of Mono is a multi-platform support, that beyonds regular .NET world of Windows architecture. Unity is one of the most actual application of Mono as a development platform mentioned as successful example in various articles.
10 years ago, Spring framework became a trend in Enterprise Java Development without huge and overweight classic JEE (it was called J2EE) technology based on EJB. We called Spring as JEE without EJB. Its amazing IoC container and DI schema have been doing our life much more easy. Configuration via annotations made the whole process even more fun, because it allows us to avoid describing all our beans and relations in XML. Nowadays, modern popular frameworks like Ruby on Rails or Django provides even more fast tools and development practices. On the other hand, Java Development world is bit more conservative. We had no easy and fast way to start new project. Instead, we had to spend some time to configure Spring environment. Spring Boot [http://projects.spring.io/spring-boot] is a solution for this problem, applicable in case of start up, agile approaches or even pet projects.
Configuration over dependencies
Rail uses its power command line tools to start new application, generate new element of the project and various other actions. But Spring Boot is not an automatic code generation tool. It is rather a plug for Java Development build system. It supports both Maven and Gradle. Main feature of of Spring Boot is
API turns a service into a platform
Nowadays, largest commercial services, such as Twitter, LinkedIn, Facebook, provides API for their models and services. They opened their platforms to be extended by huge community of software developers around the world. If one user of a service costs one unit, then single developer contributing into the architecture has value ten times more. This is true for full range of Application Development approaches from simple customization scripts to huge business based on complicated systems. API and its ability to extend and create attracts and even inspire the most creative specialists. This is a two-way street. On the one hand, developers and entrepreneurs have ability to grow up their own ideas into a successful business using existing cool service and its community of users, on the other hand, a service may acquire additional features without extra efforts. Users or hired API developers would design and implement specific features for their own needs. API looks like one more communication channel between customers, service and community as a whole. It is a way to show what they really need. API is a next-level step in the project evolution. It is a point where system may become a platform rather than just a service.
Apple’s look-and-feel style was dominating in mobile and even web design for a long time. Inspired by Steve Jobs the iOS UI/UX was treated as almost absolute standard. Even some of Android developers and designers were trying to copy iOS practices in their projects. Keep in mind, you should have very important reason to fight a framework. Recently, Google, as main supporter of Android platform, announced Material Design [http://www.google.com/design/spec/material-design/introduction.html] their point of view on both questions Usability and UI design. Besides, Material Design is not just pure theoretical specification. There is new Android 5.0 “Lollipop” version available. It’s based on Material Design. So, you are able to try it live, as well.
Flat, non flat and material
About 10 years ago the web design was pretty huge visually. It had a lot of almost realistic graphics with 3D effects, shadows, gradients, etc. Even small buttons and icons were 3D-like. Later, the web became more productive and useful. For now, it’s not just pure visual set of pages to represent some information. It’s rather applications with thick UI.