10 ms·
Microsoft now lets iOS developers deploy, run and test their apps on Windows
- pjc50 9y ago"Microsoft tells us that it talked to Apple about this functionality and that it has its rival’s blessing and that the Live Player application complies with all of Apple’s usual rules." Which is interesting, since I thought that interpreters were strictly against Apple rules?
- ianai 9y agoI'm confused as well. Either this is a framework which I thought apple outlawed. Or it's a runtime which apple definitely outlawed.
- richardwhiuk 9y agoFrameworks are fine.
- bpicolo 9y agoDeployed apps are compiled to ARM assembly. Bit of info here: https://developer.xamarin.com/guides/cross-platform/application_fundamentals/building_cross_platform_applications/part_1_-_understanding_the_xamarin_mobile_platform/ https://developer.xamarin.com/guides/cross-platform/applicat...
- ianai 9y agoYou got it, the relevant piece: "OS – C# is ahead-of-time (AOT) compiled to ARM assembly language. The .NET framework is included, with unused classes being stripped out during linking to reduce the application size. Apple does not allow runtime code generation on iOS, so some language features are not available (see Xamarin.iOS Limitations )."
- Nelkins 9y agoNormal deployed apps are. Here though, the app that's actually running is the Xamarin Live Player which comes with an IL interpreter. In the normal cycle of Xamarin iOS development from Windows, the DLLs are compiled, and then there's another step where they are AOT compiled to ARM assembly on the Mac. In this case though it avoids the step of compiling on iOS, it just builds the DLLs and sends them to the device. This is my best guess of what's happening based on this article: https://arstechnica.com/information-technology/2017/05/xamarin-live-player-almost-takes-the-mac-out-of-ios-development/ https://arstechnica.com/information-technology/2017/05/xamar...
- JonathonW 9y agoAccording to the App Store guidelines, applications can't download code, and must use the built-in Javascript interpreter for Javascript execution (those are the two rules in the App Store review guidelines that are relevant to the execution of downloaded code). In practice, though, Apple has generally accepted applications that pass user-supplied code to an interpreter, as long as that code is actually user-generated: see Pythonista (embedded Python interpreter), Continuous (embedded .NET CIL interpreter, akin to what Xamarin's doing here with Live Player), Ruby for iOS, etc. You won't find any compiled languages (which compile down into native machine code) in the App Store, though; even ignoring the review process, there are technical restrictions in place in sandboxed iOS apps that prohibit applications from running arbitrary code.
- fhood 9y agoAnybody used this yet? This could end up be really helpful for me. I hate developing for android, but I collaborate with people that don't own macs enough that it ends up being my de facto OS for prototyping mobile crap.
- xamcb 9y agoHey, PM at Microsoft here. I have used this often, and I find it to be perfectly suited for quick mockups and testing new ideas. However, it is still a preview, so there may be cases where live apps may fail on the device. Be sure to let us know, we are eager to improve this product!
- 0x0 9y agoSo I take it you still need a mac with xcode to properly codesign and submit release versions of apps to the ios app store? I'm assuming the preview player ios app is just interpreting c# in debug mode? No way apple blessed microsoft's preview app with jit entitlements?
- rhodysurf 9y agoYes you have to compile with a mac to deploy to itunes connect. No it compiles C# AOT to arm assembly code.
- bpicolo 9y agoAre there not online services for this? (Or is that outlawed?)
- cmelbye 9y agoYeah, these days it's easy to use an online service to submit to the App Store. Buddybuild (buddybuild.com) is really helpful for this. It acts as a CI system, and it can deploy builds to iTunes Connect with one click.
- capote 9y agoI came here to ask about submitting to the App Store. Does this mean that a Mac is, technically, no longer required for the entire process of development -> release of iOS apps?
- hbcondo714 9y agoThere is no mention of this process being able to upload an IPA file so I'm assuming we still need to use xCode or Application Loader on a Mac
- bpicolo 9y ago
- Stanleyc23 9y agomore accurately: Microsoft now lets Xamarin developers deploy, run and test their iOS apps on Windows
- H1Supreme 9y agoYeah, they left that part off didn't they? Xamarin != Native iOS.
- hkmurakami 9y agoYep convenient ommissions = marketing
- marcosscriven 9y agoHow is Xamarin not native? It's compiled right, not some web view hybrid?
- xamcb 9y agoYes, Xamarin produces a compiled executable, as you would get in Swift or Objective-C. It is not a web view hybrid. I work for Microsoft
- UK-AL 9y agoIt is native code.
- balls187 9y agoBy Native iOS you mean not written in Objective-C/Swift using Cocoa Touch
- starik36 9y agoXamarin uses Cocoa Touch. It gets compiled to the same thing as something written in Swift. So definitely iOS Native.
- 9y ago
- pgoggijr 9y agoAre there any examples of solid, stable, cross-platform apps developed with Xamarin? I tried looking at their website, but it doesn't seem possible to tell the difference between apps being tested using Xamarin Test Cloud, and apps developed using the Xamarin Platform.
- hart_russell 9y agoI've worked on a number of Xamarin apps. You can definitely make stable cross platform apps, it's just very tedious; sometimes it requires more effort than developing 2 separate native apps.
- stevenwoo 9y agore:more effort Did you have the freedom to recommend going native or was Xamarin a requirement or was it too late to switch?
- pbarnes_1 9y ago* written in C#.
- mkhalil 9y agoWow, for a second I thought I was looking at an old post since this functions almost identical to how repl.it[0] is working and they just posted their framework on here a few days ago. [0]https://repl.it/site/react_native https://repl.it/site/react_native
- banashark 9y agoIt's cool to see xamarin growing after the microsoft acquisition. Replicating good existing features that other environments have (like exponent, etc) is a good sign that things are progressing. Building apps with Xamarin however is still not a pleasant experience whether it be Native or Forms. Although Microsoft has built some cool apps with forms (check the microsoft github and you can find them), it's still a pain to work with things visually. Odd bugs and restrictions that require dense workarounds occur if you deviate from the standard application uses (tables and forms). It makes sense it being a targeted API so I'll leave it at that. Native was something I really wanted to like. I built 2 PoC apps that later got translated into swift/java and react-native respectively. Building your own libraries and widgets is fun, but not when you have a deadline. For non-visual libraries, it's awesome. I've worked with the .Net ecosystem for a while, and while the way libraries are written isn't my favorite (OverkillOOP sometimes), everything is consistent. Visual Libraries are rough. Quite a few I wanted to use were abandoned with no source code and just a link to download the nuget from the xamarin store. I could spend the time building the 10 custom widgets that the client REALLY wants (even though the app could work fine without it), or I could use native/RN UI libraries to wow the client giving them what they wanted and a little bit more in the same visual/design style. To sum it up: it's more work to write a xamarin application when I'm more than capable of handling 2 similar languages (most app requirements are just applying known patterns and library gluing anyways) or using Exponent/ReactNative. As a side note, I prefer F# and while the Xamarin team says they "like it", it is a pretty 2nd class system and definitely not something you want to use with a deadline.
- joshjje 9y agoIve only dabbled in Xamarin briefly before, but I can imagine the numerous ways it could complicate things. If you have ever been deep into Windows Forms or the windows API in general, even native has its own unpleasant experiences, though I cant speak for Apple stuff. We recently went the hybrid route using Cordova, and while it too had its share of shenanigans, I think it was much faster/better than separate apps.
- logiseye 9y agoTo be honest, that page about limitations in their docs is a huuuuuge let down https://developer.xamarin.com/guides/cross-platform/live/troubleshooting/ https://developer.xamarin.com/guides/cross-platform/live/tro... - Android user interfaces designed with AXML files are not currently supported. - Some iOS storyboard features are not supported. - iOS XIB files are not supported. Well, let's see how this evolves over time...
- tluyben2 9y agoI have been working on a huge Xamarin app for weeks now and both Xamarin Studio and Visual Studio for Mac are horrendous. There are so many bugs and quirks in those things. Almost always when I think I found an issue with the underlying libraries (we use the native Android & iOS libs as well as Forms and a mix of both), it is an issue with either of the IDEs. I have a solid Macbook Pro and yet it comes to a halt and requires reboots after a bit. I even currently do parts with Vim and only compile/run with the IDE. I tried Rider but that's even worse. VS for Windows with this release might be worth a try. Did anyone try?
- 0xFFC 9y agoSorry, i am little bit confused, you don't need azure cloud or anything to run you ios app inside your visual studio when you developing it? It iOS vm or it is just deploys to your IPhone from windows?
- znedw 9y agoDeploys to a physical iOS device via QR code
- bigmanwalter 9y agoI haven't used Xamarin yet but I'm really enjoying Ionic framework for multiplatform development with JavaScript.