Durante la conferenza Build, Microsoft ha presentato interessanti novità sullo sviluppo mobile e cross-platform. Alcune di queste riguardano gli sviluppatori iOS e Android, che avranno ulteriori strumenti a disposizione per aumentare la diffusione delle proprie app, riutilizzando il codice già scritto nativamente per queste due piattaforme (in Objective-C, Java, e magari in futuro anche Swift).
Alla luce di queste novità, faremo il punto della situazione sullo sviluppo mobile, discutendo le strategie per scegliere quale tecnologia usare per la nostra prossima app, tra sviluppo nativo o con tool come Xamarin e Apache Cordova.
12. Fast, x86 image built from AOSP
Runs on Hyper-V
Comes with Visual Studio
Speaks Android Debugging
Native capabilities and sensors
Zoom, Rotation, Network, Location, Accelerometer, Battery, OpenGL
SD Card, Camera, Audio playback, Keyboard Input, Screenshots,
Version and Screen Size Configurations, Drag&Drop APKs
13. Polita Paulus
Principal PM Manager
Getting Started with Cross-Platform Mobile Development with
Apache Cordova
2-706
17. Black Box
Microsoft OSS contributions to Cordova:
• Cordova Browser Platform + Browser Support
for Top 30 Plugins
• Ripple, v2
• Cordova Windows Platform
• Cordova Test Infrastructure (MEDIC)
• Cordova CLI (--list, --save, --restore, --arch)
• Filling out the Plugin support matrix
• Hosted app support for File, Media Capture,
and Camera plugins
29. Native compilation, native performance
Xamarin.iOS does full Ahead Of Time (AOT)
compilation to produce an ARM binary suitable
for Apple’s App Store
Xamarin.Android takes advantage of
Just In Time (JIT) compilation on the Android device
30. Shared C# codebase • 100% native API access • High performance
iOS C# UI Windows C# UIAndroid C# UI
Shared C# Mobile C# Server
Linux/Mono
CoreCLRAzure
Shared C# Client/Server
31. Shared C# or F# codebase • 100% native API access • High performance
iOS F# UI Windows F# UIAndroid F# UI
Shared F# Mobile F# Server
Linux/Mono
CoreCLRAzure
Shared F# Client/Server
34. Create UI with drag and drop simplicity
Target multiple screen sizes, resolutions,
and OS platform and versions
Layouts saved in native
resource formats
World’s best Android designer
available in Visual Studio
UI design iOS app designer in Visual Studio
Android app designer in Visual Studio
38. Salmaan Ahmed
- PM Windows
Jim Radigan
- Compiler Technologies
Compiling Objective-C
Using the Visual Studio 2015 C++ Code Generation that Builds
Windows, SQL, .Net, and Office
3-610
39.
40. Growing Reach with Universal
Windows Apps
Windows Developer Platform
Improving User Engagement
41. Wherever your code was born, you can bring it to Windows
Middleware Platforms
Middleware Partners (e.g., Xamarin)
Game Engine Partners (e.g., Unity)
Other Mobile Platforms
‘Project A’ (Java/C++)
‘Project I’ (Objective C/C++)
Windows Platform
Universal Windows 8 Apps (C++/C#/JS)
Universal Windows 10 Apps (C++/C#/JS)
‘Project Centennial’ (Classic Apps)
Web Platform
‘Project Spartan’ Rendering Engine
Cordova Tooling (HTML/JS)
‘Project Westminster’ (Web Apps)
Universal Windows
Platform
XboxIoT
Universal
Windows Platform
44. Write Universal Windows Apps in Objective-C
Objective-C language support
• Compiler and Runtime
Useful and usable APIs
• iOS API compat
Tools
• Editor / Workflow
• Project import
46. Tooling
Integrated Visual Studio Development
Xcode projects
imported to
Visual Studio
Integrated
language
support:
syntax
highlighting,
autocomplete
Full
debugging:
breakpoints,
stack traces, …
Universal API
Interop
48. • You are writing a Windows App
• With ObjC as a supported lang
• Interop with Universal API surface
• And reuse code that uses some
iOS APIs
Quindi
49. Works across Win10 devices
Deploy to more devices
Across multiple form-factors
Running ARM and x86/64 CPUs
50. API Compatibility
Supports a subset of iOS
APIs
Does not track a
particular version of iOS
Most used APIs are
implemented first
• Games: OpenGL (ANGLE,
CAEAGLLayer, EAGLContext),
OpenAL, Sensors
• UI: UIKit, CoreAnimation,
CoreGraphics, CoreText, Touch
• Objective-C: ARC, blocks
• Foundation / CoreFoundation
• Services: StoreKit, Social,
Notifications, …
51. Windows does the heavy lifting for you
We translate and redirect iOS concepts to Windows concepts
User experience Monetization services Platform
Windows 10
52. Proven compatibility
Candy Crush Saga: Brought to Windows
Phone with very few code changes
Interop used for native integration
• In-App Purchase
• Local Notifications
54. John Justice, Director of Program Management, OSG
Rajesh Sundaram, Director of Software Engineering, OSG
2-702
55. XboxIoT
Universal
Windows Platform
Middleware Platforms
Middleware Partners (e.g., Xamarin)
Game Engine Partners (e.g., Unity)
Windows Platform
Universal Windows 8 Apps (C++/C#/JS)
Universal Windows 10 Apps (C++/C#/JS)
Project Centennial (Classic Apps))
Web Platform
Microsoft Edge HTML Engine
Cordova Tooling (HTML/JS)
Hosted Web Apps (HTML/JS)
Other Mobile Platforms
Project Astoria (Java/C++)
Project Islandwood (Objective C/C++)
Other Mobile Platforms
Project Islandwood
Project Astoria
Use your Java / C++ code
Use Android IDE
High code reuse
Use your Objective C code
Use Visual Studio
Medium-high code reuse
Wherever your code was born, you can bring it to Windows
57. Apps built with Project Astoria are Windows apps
Users acquire apps built with Project
Astoria through the Windows Store
User experience
Cloud services
Platform
58. Apps built with Project Astoria are Windows apps
v/sv/sv/s
User experience
Cloud services
Platform
60. We translate and redirect Android concepts to Windows concepts
User experience Cloud services Platform
• Acquisition
• Input and interaction
• App-to-app interactions
• Windowing & navigation
• Notifications and live tiles
• …
• In-App Purchases
• Ads
• Maps
• Game Services
• Analytics
• Notification service
• …
• File system
• Contacts, photos,…
• Sensors
• Camera
• Hardware accelerated
graphics & Direct X
• …
61. Microsoft Services
AppInsights
MS Ads
In-app Purchases
Windows Notification Service
Xbox Live Services
Bing Maps
Windows Location services
…
• Project Astoria SDK in Java
• Use Microsoft services with minimal
code change
• Get Started in Dev Center
Windows apps built with Project Astoria use Microsoft cloud services
User experience
Cloud services
Platform
62. Android platform capabilities are redirected to Windows
• File system
• Contacts, photos,…
• Sensors
• Camera
• Hardware accelerated graphics &
Direct X
• Networking/sockets
• Application lifecycle
• Resource management
• Background execution model
• Security model
User experience
Cloud services
Platform
64. Windows 10 Mobile Only
+
Your Android Code
(Project Astoria SDK & App analysis)
+
Your app in the
Windows Store
Your IDE
(Project Astoria Plugins)
Your dev
machine
Build a Windows app with your Android code
+
Windows
Magic
Live tiles
…
IntelliJ
Android
Studio
Eclipse
Windows
Mac
65. Learn more about Project Astoria at
http://aka.ms/projectastoria
72. C++
• Facebook Messenger
• Facebook
• Pandora
• Clean Master
• Go Keyboard
• Instagram
• SnapChat
• Super-Bright LED
• Candy Crush Soda
• Spotify
• CrossRoads
• Netflix
• Subway Surfers
• Kik
• WhatsApp Messenger
• Skype
• Clash of Clans
• Jelly Jump
• DubsMash
• Temple Run 2
• Surgery Simulator
• Pinterest
• Candy Crush Saga
• CM Security Antivirus
• Trivia Crack
• Zedge Ringtones
• Apus Launcher
• Bingo Crush
• Amazon Shipping
• Texas Holdem
• ZigZag
• 8 ball pool
• Yahoo Mail
• Game of War
• Despicable Me
• Fast and Furious Legacy
• Five Nights at Freddy’s
• Sound Cloud – Music and Audio
• iHeart Radio
• Twitter
• Fruit Ninja Free
• The Weather Channel
• Flow Free 2
• Minicraft
• Magic Piano
• ooVoo video call
• Solitare
• Wish Shopping Made Fun
• Google Earth
• Angry Birds
73.
74. Compilers Visual C++ Compiler
GCC
Clang/LLVM
Clang/LLVM
Build Engine MSBuild, Nmake
NDK Build, Make files,
Gradle, Ant
Xcode Build
IDE(s) Visual Studio Eclipse CDT Xcode
Host Platform Windows 8/8.1/10
MacOS X, Linux,
Windows
Mac OS X
Development tools for C++ cross-platform