I'm pretty excited about Firefox OS, but I think they need to lay out a clear path for developers. The "use html5, dummy!" battlecry falls short. What is html5 and where do I download it? Which frameworks do I use (there are literally hundreds of them), which toolchains work best? How do I handle multitouch?
I know I can use whatever I want, but I want them to a) obviously continue to allow me to use whatever I want, and b) tell me what way they think I _should_ do it.
I know you want them to tell you, but I'll tell you a bit. HTML5 isn't downloaded, it's just like HTML with some extra features that are now supported by browsers (Canvas tag, local storage, audio/video) that you actually don't have to use. You can continue to use whatever web frameworks you want, and unfortunately the way they want you do it is however you want to do it.
Sorry if my tone wasn't clear. I know html5 isn't something you can "download".
I'm just comparing a beginner developer experience for iOS/Android/Firefox OS.
iOS -> download Xcode, install, new project, build and run.
Android -> download Android SDK installer, install eclipse plugins, install eclipse, install current SDK, create new device for emulator, create new project, run on device.
Firefox OS -> ??? google "html5"
I would like to see them field a framework along with their OS. Even if it just means partnering with an existing framework. Make it a 1st class citizen on the OS so you don't need to include your own copy of all the .js files.
If that's not possible, even a simple "here are frameworks we like for Apps: x,y,z Games: j,k,l" would help set people on the right path.
There is a Open Web App Bootstrap that is being used by Mozilla to develop web applications. They are of course open source and you can grab them yourself. If you had read my previous comment, you would have seen it by now.
"This is a basic template that includes jQuery, require.js, volo, Mozilla Marketplace libraries, and other helpful things. A game template and others will be available soon."
Thanks for providing those links! I work on mortar and wrote the weatherme tutorial.
We just released a new version of mortar on Friday, with all new templates that should be easier to use. I'll be updating the tutorials soon.
The developer hub will be the place devs go to learn about building apps for Firefox OS. We know it's just HTML5, but we are also aware there are many other questions regarding app development, so we fully intend to fill those gaps. It's not quite as simple as "just" building an HTML5 site.
> iOS -> download Xcode, install, new project, build and run.
Oh, come on. You're seriously joking, right?
How about paying the $99 fee, otherwise you won't see it in action on your own phone? How about figuring out how to issue and install those damn certificates for your phone? How about learning Obj-C, a programming language that's only used on Apple's OS X and iOS? How about having to own a computer running OS X to be able to do anything?
This doesn't even factor in the cost of learning yet another UI framework. My first mobile app was built for Android (because I don't have any OS X computer) on top of PhoneGap, because I only wanted to display a bunch of simple dialogs and item lists and I couldn't be bothered to learn Android's flavor for UI. And I already know HTML and Javascript.
Making an app for any platform has a learning curve. If you know Objective-C, learning iOS programming is an easy jump. If, as in your case, you know HTML+javascript, making a PhoneGap / Firefox OS app will be an easy jump. If you learned Java in school, Android will be an easy jump. If you know none of these they're all going to be approximately equally difficult.
# Cost:
iOS - $600 Mac Mini + $300 iPod Touch + $99 developer account
Android - ~$350 PC + $300 Nexus 4
Firefox OS - ~$350 PC + $300 Samsung Galaxy S2 (?)
iOS is a bit pricier to get started on. No question.
# Provisioning and Certificates:
Yeah these are some annoying bullshit. I agree 100% on this point.
It's not the price of a Mac Mini that I care about. I already have a Mac Mini.
The thing is, my workstation is Ubuntu. I feel comfortable with it, all my tools are here within reach, its setup is streamlined to get out of my way, etc...
To develop for Windows or for iOS, I have to go out of my way and use another environment in which I don't feel comfortable.
I don't get why Microsoft and Apple don't release cross-platform SDKs. I don't really care about XCode or Visual Studio, I just want a bunch of tools with which I can compile and publish projects from the command-line. Actually, I only care about publishing on my own personal phone and I don't really need an emulator either, as my own phone can substitute for that (provided it has a way to get some logs and stack-traces back). Apple makes this especially difficult, since you can't (legally) run OS X in a virtual machine (this was true last time I checked and the VMWare instance I managed to setup was extremely unstable).
So that's why I brought up the OS X argument. Monetary cost is not the only cost. Google did a smart thing with Android, because even though you have to endure Eclipse, at least it doesn't pull you out of the environment you use daily.
Also, developing with HTML and Javascript is even more kickass, because you can start mocking / messing around with just a browser like Chrome or Firefox with Firebug installed or something similar.
There is a clear framework for existing mobile platforms, but IMO the whole process is WAY more frictionless with the web (FFos) side.
>download Android SDK installer, install eclipse plugins, install eclipse, install current SDK, create new device for emulator, create new project..
It is easy to forget once you have done it, but that is a pretty daunting process for a newcomer.
In reality the web side will evolve, starting with editing some existing files in notepad-- much lower barrier to entry. Not to mention that they will have the established webdev community to draw on.
This runs as a FireFox browser extension, which is pretty neat. Once the .xpi file downloads, simply drag it into a tab of FireFox and you're off and running.
The level of polish in B2G is quite impressive, especially given the alpha label. I suppose the fact that everything is written in HTML5 makes for very quick development times.
If I was at Facebook, I would be paying -very- close attention to this project. It's in their interest to get an independent mobile platform out into consumer hands, and I'd be surprised if they aren't already devoting developer time to the project. The harder challenge will be getting handset makers and carriers to support the new environment, and that's where a backer with big pockets could come in handy.
They say they already have partnerships set up with brazilian carriers and are aiming for a launch in Q1 2013. If that goes well I assume it will be pretty easy to get companies on board around the world.
Just tried the map application in the simulator and it's smooth even if my little netbook barely handle Google.com without some lag. Impressive I'll say.
A little more information about availability from Wikipedia:
"At Mobile World Congress 2012, Mozilla and Telefónica announced that the Spanish telecommunications provider intended to deliver "open Web devices" in 2012 based on HTML5 and these APIs. Mozilla also announced support for the project from Adobe and Qualcomm, and that Deutsche Telekom’s Innovation Labs will join the project. Mozilla demonstrated a "sneak preview" of the software and apps running on Samsung Galaxy S II phones (replacing their usual Android operating system). In August 2012, a Nokia employee demonstrated the OS running on a Raspberry Pi.
Firefox OS is compatible with devices including: Otoro, PandaBoard, Emulator (ARM and x86), Desktop, Nexus S, Nexus S 4G, Samsung Galaxy S II, and Galaxy Nexus."
Be warned, The Nexus S / SGS11 'support' is partial, there are known bugs with both that arent actively being worked on. If you are happy testing out the bleeding edge then these are good to play with. If you want something that guarantees to work (and is high priority when bugs are visible) then I would use the simulator for now until there is some form of more official support for a publically available phone.
Android SDK emulates the complete ARM architecture. This does not. If you test your code in the browser, it doesn't mean it will run well on the phones. I wonder how Mozilla will deal with multiple devices in the future. At least Apple uses a simulator because developers can afford to buy all the more recent models.
Whether your code will run well on a phone depends on which browser(s) you test in. The entire apps stack is also being implemented in Firefox for Android (it was Firefox Aurora as of September):
In other words, Mozilla is already dealing with plenty of devices today. I'd expect that, in the majority of cases, if an app works well in Firefox for Android, it will work well on Firefox OS and vice-versa. After all, the whole point is to enable apps that are portable to any device/browser combination that implements the relevant APIs.
I don't know why Google thinks Eclipse + their shitty emulator is an acceptable toolchain. Must be all the Java devs there, they're used to abysmal start up times.
My thinking is that many developers will build their mobile apps starting with just Firefox (and the Responsive Design View). Once they really start digging in to some of the APIs that exist in B2G but not yet in Firefox, they'll switch to the Simulator.
There are some differences between B2G Desktop (used by the Simulator) and Firefox today, not to mention the ability to check out Gaia (the user interface of B2G). My hope is that everything needed for the Simulator will roll into Firefox at some point.
I know you were likely kidding, but I thought I'd try to clarify where the Simulator fits in the development process for people building targeting Firefox OS.
(I'm the product manager for the Simulator, among other things)
I don't know if you're serious or not but I'll give you a nudge in the right direction for finding out what Firefox OS is: http://www.mozilla.org/en-US/firefoxos/
To be fair he is right, it is a complicated way of running what is essentially firefox. The API's will often run in Firefox plain and in future hopefully the whole OS will run in Firefox plain.
I know I can use whatever I want, but I want them to a) obviously continue to allow me to use whatever I want, and b) tell me what way they think I _should_ do it.