I want to create an Audio Unit Extension for iOS using the new AU Extentions v3 framework. The documentation and sample code provided by Apple is sparse and only available in Swift format.
Does this mean it's only possible to create AU Extensions using Swift, or is it theoretically also possible using Objective-C? In other words: will I run into something blocking when I attempt to port the sample code into Objective-C?
My understanding from the session at WWDC 2015 (session 508) was that Objective-C is actually the recommended language for Audio Unit Extensions. This is because the Swift ABI has not yet stabilized, so if you built an extension with one version of Swift, and it is hosted inside an application built with a different Swift version, you'll run into problems.
This thread discusses the Swift ABI in more detail.
Update: I went back and searched asciiwwdc.com to find the comment I was thinking of (this is from session 508 of 2015 WWDC):
So if you are going to build a framework to be loaded in process on OS X, despite what we are doing here with Swift, we can't recommend that you do this on OS X because the Swift API is subject to change.
(I'm pretty sure he said ABI, but someone transcribed it as API.)
Related
Here is my short assumption on that currently looking more on it.
Application with Swift code bundles Swift specific standard libs with Swift, Apple has changed how standard libraries are shipped. With Objective-C, all of the standard libraries, system frameworks, and the runtime itself, were shipped with the OS. But With Swift, Apple trying to ship a specific version of the standard library with your app.
Please share your thought on that.
Found Interesting - Compatibility Blog
According to that - In fact, you can target back to OS X Mavericks or iOS 7 with that same app. This is possible because Xcode embeds a small Swift runtime library within your app’s bundle. Because the library is embedded, your app uses a consistent version of Swift that runs on past, present, and future OS releases.
Any other discussion warm welcome!
Our team is in process of electing programming language to develop a new iOS application in which we have to write features to support video conversation.
The backend is written using WebRTC, now we have to decide which language to use in the iPhone app and we prefer Swift in this case.
However, I'm not sure Swift supports WebRTC or not.
My initial research show that we can implement the features using Objective-C. I found an example written in Objective-C which you can find the source code here.
However, I'm not sure about Swift. Does Swift also support WebRTC?
UPDATE 2023
Unfortunately, as of 2023 there still appears to be no completely Swift framework that implements the WebRTC protocol. Although the iOS framework hosted at webrtc.org can be fairly easily used in Swift apps, it is written mostly in objective C.
For those stumbling on this question, who just want to get webRTC running in your app this is still relatively easy using the cocoapod
UPDATE 2016
The easiest way is to get webRTC in your project is to simply install the CocoaPod using the directions at https://cocoapods.org/pods/WebRTC
If you have never used CocoaPods before you will need to first follow this guide: https://guides.cocoapods.org/using/getting-started.html
Original Answer
The simple answer to the question is that there are currently no open source libraries written in Swift conforming to the WebRTC protocol. You can still compile the code from the official WebRTC project into your app. Directions which may not lead to a successful build can be found here: https://webrtc.org/native-code/ios/
Finally, to clarify Omkar Guhilot's answer: Skylink is a company with a closed source SDK that is designed to work only with their paid stun-turn service, and https://github.com/alongubkin/phonertc requires cordova, which may not be ideal for many native ios developers.
Webrtc comes with Objective C interface. I dont think they will move to swift interface anytime soon. But You can always use them via bridging headers. I have written apprtc (webrtc's demo) in swift 2.3 version with help of bridging headers in github link with a description in this blog . I have planned to write 3.0 version and a swift wrappers over it.
Current version of webrtc framework doesn't require any pods or any extra bridging headers.
The framework can be generated by following instructions on this Link :
https://webrtc.github.io/webrtc-org/native-code/ios/
If you follow them correctly you will generate a framework add that framework in your project and follow the webrtc necessary steps and you will have a WEBRTC integrated project.
To know what all steps are necessary follow this link from appear.in
:
https://tech.appear.in/2015/05/25/Getting-started-with-WebRTC-on-iOS/
This will get you to a stage where you will be able to make calls between a browser and any iOS 8+ device
Yes swift supports WebRTC and there is one more library which you can use in swift link:- http://skylink.io/ios/
And the link that you have shared to which is written in Objective C, we should be able to use that as well in swift by creating a Bridging header
Have a look at this as well https://github.com/alongubkin/phonertc
Thanks
Omkar
I have just started working in iOS8. I have seen here Playground concept. But I didn't understand it. I have read that it could be only used with the Swift language.
I have referred documents from this link .
Can we use it with Objective-C too?
Thanks for any help!!
The playground concept is built upon a technology called REPL (More info on REPL)
Basically you can type code into the playground which is 'compiled' (evaluated) on the fly so you can see the output/result.
It's quite a nice way to play with a language, design a function or test an algorithm, but you cannot build a distributable app with a playground.
For a playground concept to work a given language needs to support REPL. Currently Objective C does not support this, therefore only Swift is available in playground form.
is there way how to play MIDI from the Delphi at iPhone under Delphi XE-5?
I found different articles showing how to play the MIDI under ObjectC so the iOS from version 5.0 has that support, but there is missing AudioToolbox and CoreMIDI implementation at the Delphi.
Does someone have that?
I assume you're using XE-5 because you're attempting to build a cross-platform app. You're up against a fundamental problem that some of the platforms supported by XE5 don't have MIDI at all.
However you approach this, you will need to build platform specific portions of the app to handle MIDI on iOS. The AudioToolbox API is a C API and CoreMIDI is Objective-C. Either way, you need to learn how to create Objective-C and C language bindings in Delphi, and consider writing a large part of your app using the platform's native tools and language.
A quick search with google suggests that you should be looking at the OCClass bridge.
I found that there isn't any solution so far.
So I wrote my self a tool to convert the iOS .h units into the .PAS.
It's in progress but I have already first units.
http://pjstrnad.com/my-projects/delphi-implementation-missing-ios-frameworks/
I'll appreciate if you can give me feedback. My intention is to convert completely the iOS framework so Delphi developers can use all the features of the iOS.
Thanks.
Somebody correct me if im wrong.
There is no way (at least no supported way) to create a View/Windows based iPhone app using the Corona SDK?
I say this mainly because i see no way to work with IBOutlets (anything related to the interface builder). Which makes me believe Corona is not converting anything to Objective C, but rather converts the Lua script to C/C++.
Thanks!
The latest new feature in Corona (currently available only to subscribers) is Corona UI, which emulates most of the native UI components:
http://www.youtube.com/watch?v=9UHNSRilB-0
Note that I say "emulated." It's still not connecting to IBOutlets but it may accomplish what you want.
Corona UI supports most of the native UI components, you can also include widget_iOS for other native components of iOS otherwise you can create your own custom objects.
We can achieve it using Corona Enterprise edition. It has all the option to bridging between LUA and C/C++, lua and objective-C or LUA AND JAVA.
Corona Enterprise provides feature to work in Xcode- objective-C environment to execute same functionalities in corona apps.
http://docs.coronalabs.com/native/enterprise/index.html
Hope this helps for your question.