[swift-evolution] [Pitch]Building a limited framework to develop Android Apps in Swift 3.0

Dave Abrahams dabrahams at apple.com
Mon Oct 10 15:05:05 CDT 2016

on Mon Oct 10 2016, Tony Constantinides <swift-evolution at swift.org> wrote:

> Its a nice cop-out, but this framework is an extension of the standard
> library of Swift as it will allow Swift developers to target new mobile
> platforms. 

It's not a cop-out.  We would never include UIKit in Swift's standard
library, which is the set of definitions you get without so much as an
“import”.  UI functionality simply belongs elsewhere.

> This is the mailing lists for the evolution of Swift which is what
> this is. I not sure any of the other Swift mailing lists suits this
> goal. I not making Swift language changes(maybe) but adding an
> additional library that developers can build against if they are
> interested in having their Swift code running on Android.
> Note that the Swift project itself has provided documentation and hooks to
> provide this capabailit seen here
> https://github.com/apple/swift/blob/master/docs/Android.md
> The main issue is that swiftcore is missing on Swift for Linux.
>   Its only important to understand I going to build this framework with or
> without support from Swift.org. However I want other developers to benefit
> from my work and I want to give back to the community. I find it extremely
> disappointing if Swift core members reject enhancing Swift to target
> additional mobile platforms as making Swift cross-platform is a stated goal.
> On Mon, Oct 10, 2016 at 9:41 AM, Douglas Gregor <dgregor at apple.com>
> wrote:
>> > On Oct 9, 2016, at 9:45 PM, Tony Constantinides via swift-evolution <
>> swift-evolution at swift.org> wrote:
>> >
>> > In Swift 3.0 you can build Android apps in Linux but only console apps
>> as there is no framework to build GUI apps using JNI.
>> > What I propose is to build an initial limited framework coded in C that
>> calls enough of the Java Android API via JNI to bootstrap the android app
>> and to create widgets and layouts.A default Androidmanifest.xml file and
>> some files needed to be generated to make a valid android app.
>> >   The Android API java surface is vast, so this framework needs to be
>> build over many releases to be useful. Developing a graphical Android app
>> requires interaction with "Activities" and the package manager and some
>> widgets like Button and some layouts like "RelativeLayout" and
>> "LinearLayout".
>> >  The result will be the ability to develop GUI Android apps on Linux
>> using Swift 3.0
>> > Further support for additional APIs will be provided once the basics are
>> solid..
>> > Who am I: Senior Android mobile developer with more than six years
>> experience on Android.
>> > Am I able to build Swift 3.0 on Linux: Yes
>> The swift-evolution process is primarily focused on the Swift language and
>> standard library. Large-scale API development, which binding to/creating a
>> GUI library entails, is out-of-scope for this process and should occur in a
>> different forum.
>>         Cheers,
>>         Doug
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution


More information about the swift-evolution mailing list