Show HN: Bootstrap for Native iOS Apps
pixate.com
pixate.com
From my personal opinion, CSS is nice the first 10 minutes, or whenever you only have a few element to style, but styling a complete app along with animations between states makes you really want to stay away from it as far as possible for mobile apps (and especially ios where resolutions are quite standard)...
1) If you're gonna' call it "Bootstrap for iOS", have the analogy end there. The site is way, way, way too much like Bootstrap already. Brand it better.
2) Good native code should be inherent! Nobody should have to learn CSS to make better iOS apps! A beginner should have a framework for her/him that allows something easy like [view fadeIn] and it work. Then, if they want a little more control something like [view fadeInOverTime:seconds]. Adding a shadow should be as easy as [view addShadow] or [view addShadowWithCornerRadius:radius]. Rounding corners is already extremely easy using QuartzCore, but let's make it even more intuitive for people. [view roundCorners] and then [view roundCornersWithRadius:radius]. The whole point is to make development exponentially easier for anybody to come in and start making useful, beautiful things.
I'm working on a class to include that does all of point #2 plus a ton more - and seeing this post will probably be the catalyst to releasing it this weekend. I have a huge plan in the works for making extremely easy to use UI elements as well, but I think open sourcing this in chunks, then releasing the whole thing as an example on how they all work together is gonna' be the route I go. So far, I've released one part of the project that makes choosing good colors to use in the app a breeze (https://github.com/bennyguitar/Colours-for-iOS). The next one will be for UI utilities like the fade in and shadow code mentioned above.
For me it seems obvious that this stuff should be /declared/ in one place, with all other styling mechanism, not littered through dozens of classes that are primarily interested in getting things done, not looking pretty.
Of course I’m a new at this - and everyone seems to think the other way is better… So maybe I’ll come around with time, but right now Pixate seems like a great idea.
First there was the native client era on desktops that involved twiddling around with swt, gtk, qt and windows programming.
Then came the advent of webapps with more uniform abstractions of client side js frameworks and css3 and dozens of toolkits and decorators around these.
Then came the mobile era with a new breed of native v/s web applications. Nowadays, the general opinion I hear is that no one really likes webapps on mobiles. But we as a community actively are trying to port over the abstractions of css/js frameworks to native mobile so that developers can continue being comfortable while programming devices that function at the whim of Apple and Google.
I wish there were a timeline of sorts of all the paradigm shifts that programming user experiences has undergone over the last decade.
Having had a taste of native app development, it makes client side web development comparatively frustrating. We're continuously getting new features but little in the way of a more satisfying environment that can help bring all these parts together.
I'm not sure what the current state of the framework is, since the company that made it has been acquired, but it sure was a cool idea.
Too many crazy web projects trying to shoehorn the desktop experience into the browser in a way that has to work the same across multiple browsers and operating systems, which leads to CSS/HTML/JavaScript hacks everywhere, with some customers discussing designs down to the pixel level.
How is a system based on CSS stylesheet native?
Why is it 1500 dollars per day to do what seems to be templated app development -- many other companies offer this at far far lower rates (think 50 dollars or less for a complete app).
Why only iOS? The purpose of templated distribution is to reach a wider audience, not a narrower one.
button { border-radius: 5px; background-color: red; }
Think of it as declarative markup for styling native controls.