Apple has announced its latest foray into open source software, this time with SwiftNIO, a new framework for writing network applications using the Swift programming language. Both the framework and its open source nature were announced by Apple software engineer Norman Maurer at the try! Swift Conference.
The framework is now available on Apple’s GitHub page. Here’s what the company has to say about SwiftNIO:
SwiftNIO is fundamentally a low-level tool for building high-performance networking applications in Swift. It particularly targets those use-cases where using a “thread-per-connection” model of concurrency is inefficient or untenable. This is a common limitation when building servers that use a large number of relatively low-utilisation connections, such as HTTP servers.
For those familiar with the Netty framework, Apple also describes SwiftNIO as “like Netty, but written for Swift.”
The documentation for SwiftNIO notes that the framework is not geared towards building web applications, but rather for providing underlying network support for those applications. Currently, SwiftNIO supports macOS 10.12 or higher and Ubuntu 14.04 or higher.
See, there are two main paths to app development. “Native” development, where you use the default tools and languages provided by Apple or Google for their respective platforms. But then there’s… everything else. You can make apps for Android and iOS in C#…
After being announced last year, Google took to the stage at MWC 2018 to announce a beta release of Flutter, its free and open-source framework for building iOS and Android apps with a unified codebase. The SDK lets devs code their apps in the Dart programming language, and packages them along with a rendering engine, as well as the native code needed to run those apps on Android or iOS. It’s designed to offer top-shelf performance, while also making it easy to create interfaces suitable for both platforms, thanks to included UI widgets for each. Flutter plays nice with a range…
Developing for both Android and iOS usually involves working with two codebases, two UI frameworks, and two different design languages. There have been a few efforts over the years to remedy this problem, but they usually result in apps that don’t work well and don’t look particularly native. Google unveiled its ‘Flutter’ framework at Google I/O last year, which allows developers to quickly create native iOS and Android apps.
The first beta version of Flutter is now available, signaling that Google thinks the project is ready for more widespread use.
Google has released its first beta of Flutter, a mobile user interface framework that intends to help developers create interfaces for their apps on iOS as well as Android smartphones, a toolkit that could speed up and simplify cross-platform app development. AppleInsider – Frontpage News
In the last year, there has been a growing trend of iOS development teams adopting XCUITest and additional frameworks built on top of XCTest interface.
Development teams have started to adopt XCUITest to get fast and reliable feedback. There are a few clear drivers to this growing adoption:
Intuitive – Using XCUITest is quite intuitive for developers as it runs from within XCode IDE
Fast – Test execution against iOS devices is faster than any other UI test automation tool due to the framework architecture
Reliable – Due to the architecture of the framework, test execution using XCUItest generates more reliable results and eliminates flakiness
Mature – The API’s and the framework became significantly more mature during the last year
Test maintenance – Since the app is instrumented, the framework works directly in the object level which reduce maintenance efforts that usually happens due to changes in the applications.
A quick iOS instrumented testing frameworks and terminology review
XCTest – Apple’s official framework for writing unit tests for classes and components at any level. These tests, like the app itself, can be written in Swift/Objective C.
XCUITest – a UI testing framework that is built on top of XCTest. Itincludes additional classes (such as UIAccessibility); these tests can be written in Swift or Objective C. The tests are packaged in a test ipa (iOS packaged application) runner that execute the tests on the AUT(application under test) ipa.
KIF(Keep It Functional) – A iOS native app that warps XCTest as well using undocumented iOS APIs. It requires the developer to add KIF framework to the project. It has simple and intuitive syntax.
[tester enterText:@”email@example.com” intoViewWithAccessibilityLabel:@”Login User Name”]; [tester enterText:@”thisismypassword” intoViewWithAccessibilityLabel:@”Login Password”];
Earlgrey – Similar to KIF although developed by Google. EarlGrey has an advanced synchronization mechanism which means you don’t need explicit waits / sleeps. (For example, if tapping a button triggers a network request, EarlGrey will wait for the network request to finish before proceeding with the test). EarlGrey uses matchers extensively (Read selection API this), these give you the flexibility to interact with elements and write assertion logic in a variety of ways with simple APIs.
Cucumberish – Test automation framework for Behavior Driven Development (BDD) that integrates into XCode and uses the iOS interfaces XCTest/XCUITest.
The challenge we find is although the above test frameworks can solve significant challenges that other test automation frameworks cannot, in many cases, teams adopt these frameworks before considering the proper setup and infrastructure. The promise of XCUITest depends on the fact that the execution of the tests will be on a robust, reliable, and scalable lab infrastructure.
Even though the adoption of those automation frameworks grow, many teams still execute their tests on simulators / local device from the developers workstation. Those teams understand that they get significantly more value from executing XCUITests and therefore continue to consider leveraging them even more by executing them as part of the CI processes to provide continuous feedback on real devices and end-user conditions.
XCUITest advanced capabilities
Perfecto recently released advanced support for the above frameworks in order to enable development teams to leverage the advantages mentioned above, while leveraging Perfecto’s cloud based capabilities. In addition, Perfecto extended the XCUITest framework by adding the ability to control and setup the device the same way end users do, by which enables teams to validate that their apps will function as expected in the real world.
To learn more about the Perfecto solution please visit our documentation website or to read more about the differences between XCUITest and Appium: The Rise of Espresso & XCUITest; The Fall of Appium, click here.
Xposed, a framework that allows users to install heavy modifications to Android, usually takes a few months to be updated for every new Android release. However, it took over a year for the creator of Xposed (rovio89) to update the framework for Nougat, due to the major changes Android 7.0 made to the app runtime.
Thankfully, it looks like we won’t be repeating that long wait, as a beta version of Xposed is already available with Oreo support.
Apple on Thursday published a new entry to its Machine Learning Journal for researchers and developers, discussing face detection and the related Vision framework, which developers can use for apps on iOS, macOS, and tvOS. AppleInsider – Frontpage News
Google’s Firebase team has been hard at work lately. Earlier this month, Firebase added a whole new storage product called Cloud Firestore, but that was just the beginning. Several major additions and improvements were just announced during the keynote at the second annual Firebase Dev Summit is taking place in Amsterdam.
Integration with Crashlytics
Ever since Google acquired Fabric, we’ve known integration with Firebase was in the cards. That day has come, or at least it’s pretty close.
Xposed Framework was extremely popular in the KitKat and Lollipop days for heavy system modification, but until today, it lacked support for Android 7.0 Nougat. While the developer shared status updates every once in a while, progress was slow thanks to major changes in Nougat’s app runtime. At long last, Xposed is finally available for Android 7.0 and 7.1 devices.
The creator of Xposed, rovo89, released the updated framework today alongside version 3.1.2 of the installer app.