Mobile App
#
13 July, 2017

Swift 4 – A Step Ahead to The Most Advanced Programming Language

Hey, welcome back!!! Let’s move one step ahead with the open source development language from Swift 3 to Swift 4. We, at 9series, have filtered out points of our next strides in developing mobile apps using Swift 4.

Swift-4---A-Step-Ahead-to-The-Most-Advanced-Programming-Language

Swift 4 is the latest major release for iOS App Developer that is intended to be completed in the fall of 2017. Its main focus is to provide source compatibility with Swift 3 code while implementing essential feature work that needs to achieve binary stability in the language. It will contain valuable enhancements to the core language and Standard Library, particularly in the generics system and an overhaul of the String type.

Source Compatibility Modes

The Swift 4 compiler will provide two language modes: Swift version 3 and Swift version 4. Swift 3 established the language for source-level stability and now Swift 4 releases source compatibility as a feature moving ahead.

  • Swift 3 mode is default for existing code and will build source code that works with the Swift 3 compiler
  • Swift 4 mode allows you to use new features and performance optimizations of Swift 4, some of which may require migration
  • Mixed mode allows you to take advantage of interoperability between binaries built with the same compiler. The proposed design is that a project containing various Swift modules, such as a Xcode project with multiple Swift targets, will be able to ratify into the specific Swift language mode on per module (target) level and that they can smoothly interact within the same compiled binary.

New Features in Swift 4

  • Swift 4 presents another codable protocol that gives a chance to serialize and deserialize custom data types without composing any special code – and without worrying about losing your value types
  • Quicker and simpler to use strings that retain Unicode correctness and add support for using, creating and managing substrings
  • Smart key paths for type-safe, effective and extensible key value coding for Swift types
  • Enhancements to create and manipulate Dictionary and Set types

Swift has many other features to make your code more expressive:

Multi-Line String Literals

To start a string literal, you need to write three double quotation marks: “”” then press return. After pressing return key, start writing strings with any variables, line breaks and double quotes. To end multi line string literal again write ””” in new line. Ex:-

1

Strings are Collections

Just like in earlier version of Swift, Strings can be handled as a collection. No need to write string.characters.something to perform string manipulation.

2

Dictionary Functionality has Improved

Swift 4 combines some additional functionality to dictionaries to make them more strong, and also to make them work more like you would expect. Let’s start with a simple example: Modifying dictionaries in Swift 3 does not return a new dictionary. Instead, it returns an array of tuples with key/value labels.

3

After that code runs you can’t read distinction[“Maths”] because it is no longer a dictionary. Instead, you need to use distinction[0].value, which is not good for us because we apply filter on dictionary and we got an array.

As of Swift 4, this acts more like you would expect: you get back a latest dictionary. Obviously this will break any existing code that relies on the array return type.

Similarly, the map() method on dictionaries got a key-value tuple passed in, and could return a single value to be added to an array.

4

That has not changed in Swift 4, but there is a new method called mapValues(). It allows you to modify the values and place them back into a dictionary using the original keys.

Here we try to form different buckets where each bucket will contain values having same first character in their name. For Example:-.

5

It’s now likely to obtain a dictionary key and provide a default value to use if the key is missing. In following statement if there is no value for key “Bio” found then it will print default value.

6

Built in Encoding and Decoding

Swift 4 appears with built-in encoders and decoders for JSON. JSON to Model conversion comes in built in.

7

One Sided Range

Swift 4 introduces Python-like one-sided collection slicing, where the missing side is automatically assumed to be the start or end of the collection.

8

Conclusion

Like with other Swift releases, 4.0 was announced at WWDC ’17 and released in beta form for developers alongside Xcode 9. This release of Swift added quite a few refinements and features to the programming language. First release of Swift 4.0 will bring overall stability to the source and binary interface, or ABI.

Stay tuned for other technical and development articles.

29 June, 2017

What’s New in Xcode 9

Eagerly waiting for the features of Xcode 9? Here it is. Apple has released Xcode 9, the newest version of its free integrated development environment (IDE) for building iOS application, macOS, watchOS, and tvOS apps.

Whats_New_in_Xcode_9

With everything you need to create amazing apps for Apple platforms, Xcode 9 is unbelievably quick and consistently smooth while editing even the largest files. It also understands your code better than ever. Powerful new refactoring tasks happen in place, renaming symbols across Swift, Objective-C, and even user interface files without skipping a beat. And with source compatibility in Swift 4, Xcode 9 uses the same compiler to build existing Swift 3 code and updated Swift 4 code, so you can migrate at your own pace.

Brief About Xcode 9

  • Xcode 9 requires a Mac running macOS 10.12.4 or later.
  • Xcode 9 includes SDKs for iOS 11, watchOS 4, macOS 10.13, and tvOS 11.
  • Xcode 9 supports running multiple concurrent versions of the Xcode app and of any associated tools such as Simulator. Xcode 9 can not run at the same time as earlier versions.

All New Editor

Xcode 9 has a brand new Source Editor, entirely written in Swift. In the new editor you can use the Fix interface to fix multiple issues at once. Also, when mousing around your projects, you can hold the Command key and visually see how structures in your code are organized.

The source code editor has been completely rebuilt for amazing speed. It scrolls at a constantly smooth rate, no matter the files size. And it looks better, too, with preferences that give you greater control over line spacing, multiple font styles, and even the type of cursor. Issues have been redesigned to flow nicely with your code with Fix-its that are grouped together so you can commit multiple changes in a single click.

You can now increase and decrease the source editor font using ⌘ with + and ⌘ with -. When text is selected, typing an opening delimiter adds a matching closing delimiter at the end of the selection.

Refactor and Transform

The new editor goes beyond text entry with a new built-in refactoring and transformation engine. When you select a symbol or block of code, the editor will offer powerful operations such as ‘Extract’ or ‘Rename.’

One of the most basic refactorings is to rename a class, and all references to that class in the project are renamed as well, including references in the Storyboard and the filename itself.

Xcode 9 supports the following transformations and refactorings:

  • Add missing protocol requirements
  • Generate missing implementation stubs
  • Add missing overrides for abstract methods
  • Extract to local variable
  • Extract method / expression
  • Expand default in switch statements to generate all applicable cases
  • Convert if/else to / from switch statement
  • Wrap string in NSLocalizedString macro

Project Navigator

Groups in the Project Navigator are now more closely associated with directories in the file system.

  • Dragging files between groups in the Project Navigator now moves the files in the filesystem, and updates any associated SCM working copies.
  • Creating, renaming, and deleting groups now performs the corresponding changes in the connected directory in the filesystem, if one is defined.
  • Removing group’s connection to a directory in the filesystem can now be done in the file inspector by clicking on the clear (X) button.
  • Changing an association to a file or group can now be done quickly by dragging and dropping the file or folder onto the “Location” section of the file inspector.

Source Control and GitHub

Xcode 9 now connects easily with your GitHub account making it very easy to see a list of your existing projects, clone projects, manage branches, use tags, and work with remotes.

With your GitHub account built into Xcode, the clone window shows all of your personal GitHub repositories, as well as all the repositories where you added a star. From this window, you can search all of GitHub and check out a project with just a click.

Swift 4

  • Xcode 9 supports both Swift 3.2 and Swift 4.0, as controlled by the “Swift Language Version” build setting.
  • The new Swift 4 compiler now understands Swift 3 code. You can easily move to Xcode 9 right away. Choose which part of your application are ready to move to Swift 4, and migrate the rest of your code later.
  • Swift 4 and Swift 3 targets can be compiled together in the same project.
  • Improved migrator experience that supports migrating only selected targets to Swift 4.

Debugging

  • iOS devices and Apple TV can now be debugged over the network (Wireless debug). Wireless development also works in other apps, including Instruments, Accessibility Inspector, Quicktime Player, and Console.
  • Simply click the ‘Connect via Network’ checkbox first time when you use a new iOS device, and that device will be available over the network from that point forward.

Faster

A new indexing engine runs as part of the build process, so Xcode understands your code automatically.

Searching large projects feels quick – up to 50 times faster. And a new build system dramatically lowers the overhead of tasks that coordinates compiler, linker, and other tools.

Simulators

  • The new Simulator app is upgraded with faster launch times and a new look.
  • With Xcode 9, you can run multiple simulators at the same time.
  • Easily launch Simulator from the command-line, even when driving multiple instances
  • In addition, each simulator being resizable, it also includes new bezel where you can simulate different hardware interactions that weren’t possible in the past.
  • Simulator now provides a Share Extension. Photos and videos are imported into the device photo library. Locations or pins from Maps.app set the device’s simulated location. App bundles are installed. URLs are opened in Safari.
  • Simulator.app can now attach to simulators started from the command line and detach from simulators without shutting them down. To detach when closing a device window or quitting the app, hold down Control. You will be asked whether to shut down or detach. A checkbox is provided to make whichever behavior you choose, is considered as the default.

Conclusion

With Xcode 9 and Xcode Server, we have almost everything in single place used to create apps for Apple TV, Apple Watch, iPad, iPhone, and Mac.
As we know and experienced that no softwares can be complete or can be in a finished version, there are many new great features included in this version of Xcode. So we should definitely go for it and experience it.

We, as a mobile app developer believe that using Xcode 9, development can be done faster and can be pushed ahead with the next strides.

In this article, we, 9series, have covered about what is new in Xcode 9. If you find any new features or might have experienced with existing one then feel free to share your own experience with us.

Categories

Archives