In our work, we often need to implement video streaming from iOS devices in real-time or near real-time. A common example is the use of iOS devices as surveillance cameras or creation of streaming applications like Periscope. Problem statement often imposes additional requirements like enabling of stream playback on another device or running the app smoothly in the browser or VLC player, low latency (video streaming in near real-time), low resource consumption (long battery life), no need in a dedicated media server, etc.
In the article we are going to share our experience of finding the optimal way to visualize a waveform in an iOS app, choosing between CAShapeLayer and drawRect(), and certain nuances of using Swift. The publication is targeted at those who create complex custom UI components for sound processing, but also any iOS developers wishing to broaden their horizons. Continue reading
In this post, we would like to discuss possible issues that you may face while implementing data syncing in iOS applications, and how you can tackle such issues with various approaches and tools. We are going to approach the issue from different angles, trying to make a generic overview of the topic. Still the main focus for us are applications that have a data model that is sophisticated enough to need a structured database and the Core Data framework.
With the release of iOS 7 developers got empowered by many new tools to make fascinating effects and animations in their apps. However applicability of many of them is still in question. As soon as we made ourselves familiar with them, in our new project we decided to make a new animation, similar to that used by Apple in Messages. Continue reading
For any iOS application, interface appearance is a key driver to success. Sleek and elaborate design combined with impressive look and feel of your app, can enhance user experience and add points in favor of your application in the App Store.
How can you best impress the user? Nice appearance can be achieved in many ways, one of them is to apply effects on different parts of the interface and the image as a whole. Among all these, perhaps the most commonly used effect is Blur, and we are going to discuss it in this post. We will tell you how to apply Blur using different frameworks, and also we will experiment a little to benchmark performance of different methods. Continue reading
In this modern era of growth and development of mobile applications, enabling of efficient client-server interaction is gaining more importance. In this context, the following factors are critical: flexibility, scalability, documenting, support for older API versions, and caching. In this post, we are going to discuss the most important aspects of service development and design that will help you attain better results. Continue reading
If you develop gaming or multimedia applications for iOS, then AirPlay is absolutely a must for you, almost a standard. Indeed, what could be better for a user than watching favorite videos or photos on a big screen of a plasma TV or playing advanced games using iPhone/iPad/iPod as a multi-touch joystick? AirPlay has been designed specifically for this purpose. Continue reading
However nice the multi-platform nature of AIR is, still it is a double-edged sword. On the one hand, we can write a Flex or ActionScript application that would work correctly on all possible platforms supported by AIR. On the other hand, developers feel much restricted by that AIR sometimes fails to provide all tools to fully use the functionality unique to a particular platform or device. Fortunately, we can write native extensions for a particular platform to implement features specific to this environment only. Such extensions are called Native Extensions and are attached to the AIR project as external libraries.
In our work, we often use such extensions. Here we are going to discuss the as3c2dm extension developed by Piotr Walczyszyn. It allows you to receive push-messages and display them in the notification bar. In our work, we are actively using the extension. As we have detected a number of errors and inconveniences in it, we have tried to correct them. Continue reading
As AIR applications can run on multiple platforms and devices, AIR based developers have to take into account a vast diversity of screens, their resolutions and DPIs. Despite a broad diversity of supported platforms, in this post we will focus on multiscreen development for mobile AIR applications based on the Flex framework. Continue reading
In a mobile application, Screen Capture is a powerful auxiliary tool to be used in a variety of tasks. In this article, we are going to look at the mechanisms used to implement this feature. Continue reading