

Khan Academy iPad app launched - spicyj
http://itunes.apple.com/us/app/khan-academy-watch.-practice./id469863705?mt=8

======
kamens
Interesting tidbit: it's taken us months to get approved for the App Store b/c
we were a bit stubborn in our refusal to offer an audio-only version of Sal's
videos to people w/ crappy cell connections.

Since his stuff is so low-bitrate, we thought we could get all videos down to
the lowest of Apple's HTTP Live Streaming requirements -- even having the
crappiest of crappy video is 1000x better than audio only when trying to learn
algebra.

We were able to make a <64kbps version for most of the videos, but couldn't do
it for everything. Some were just over the mark. We hoped for a little app
store leniency given the content.

Eventually we had to give up on some problematic videos and offer audio-only
versions for crappy streaming connections. Gotta ship.

~~~
gauravk92
Sal? Or Khan Rep? I'm just about to dive into the app but I want to know up
front whether you guys have taken the online practice system and remade it for
the iPad . Apple showed off stupid iBooks interactivity, like sliding to help
yourself learn the stages of mitosis..., they don't get it. But if someone is
leading the way, it's khan academy.

~~~
spicyj
(GP is Ben Kamens, lead developer at KA.)

As of now, the app only does videos; exercises will come in a later release.

~~~
phaus
Have they actually stated that they are going to implement the exercises in
iOS? The videos are great but the exercises are my favorite part. If they
implement the exercises in iOS I might finally have to get myself an iPad.

~~~
adamjernst
They are coming to the iPad app. However they won't be implemented in native
code; they'll be jQuery Mobile-based.

------
jannes
This app seems to be a blend of native UIKit development and jQuery Mobile.
The navigation on the left-hand side is native and really fluid, but on the
right-hand side (where the videos and subtitles are) is a UIWebView with
jQuery-Mobile-powered pages. That's why the scrolling performance of the
subtitles is so shitty (compared to native scrolling) and why the "share" and
"download" buttons don't really look native. But an average user wouldn't
notice these things, so I guess they're not important.

I just don't understand why the developers didn't do everything natively. What
are the advantages of using - in my mind - inferior technology like jQuery
Mobile in an app that's completely custom-built anyway? It can't be that much
more work to do the whole interface with UIKit.

Other than that I think it's a really good app (and great content, too). So,
congratulations to the developers and Sal!

~~~
angrycoder
> It can't be that much more work to do the whole interface with UIKit.

It really does take that much more time.

Just to use a simple example of displaying a list of data. An experienced web
developer can take a list of data from a database or web service, loop through
it, and spit out a decent looking page in 10-15 minutes. Maybe take an 15-30
minutes of tweaking and styling to make it really look professional.

Now, doing the same thing on iOS, you use what is called a UITableView. There
is no type of magic data binding included, so you have to wire the whole thing
up by hand. A bit more extra work but nothing too terrible so far. Now,
tableviews are great if you only need to display text in one of 4 predefined
ways, but that usually ends up not being the case. You end up having to make
your own UITableCells to get things laid out just the way you want. So you
make a cell and start loading it up with different label fields, one for each
differently styled piece of text you want, image controls, etc etc. Now, if
you are doing this the 'right' way, each of these cells should have their own
controller because by now the method that is providing the cells to the
UITableView has a ton of logic in it and is acting as the controller for your
custom cell. But, you have to maintain this list of controllers seperately
inside your UITableViewController, further down the rabbit hole you go.

You think you are all done, but depending on how fancy your cells are and how
long your list is, you notice the scrolling is jerky, not smooth, not very
'iPhoneish'. So you read some more and figure out the only way to get really
smooth scrolling when dealing with complex cells is to manually draw them
yourself and not rely on a collection of controls contained inside the cell.
So there you sit, drawing out your individual cells with pen-style graphics
methods and blitting text and images like you are a video game developer.

Most of the nice interactions you think of as being native, aren't. They are
something that a developer had to do by hand. Even something like not having
the keyboard cover up a text field has to be done manually.

I'm not saying it isn't worth the time to do a full native app, but it does
require a lot of time, UIKit gives you very little for free.

~~~
reidmain
You realize that is just a matter of experience?

Using the frameworks I've developed I can have a iOS app hit a web service and
display a list of data in 30 minutes max.

I could write three paragraphs on all the "complex" stuff I'd have to do using
JavaScript and CSS and make it sound a lot worst than UIKit just because I am
inexperienced.

UIKit gives you so much for free. It is why so many iPhone apps look
"iPhoneish" because if you follow the good programming practices you get them
for free.

~~~
iandanforth
I would be interested in a more specific response to the parent. For example,
given your expertise, can you diagnose his problem with jerky scrolling and
offer a solution?

~~~
adamjernst
Sure, I'll do a deep dive here.

Doing high-performance scrolling is a hard problem. You just can't do it in
HTML, at all.

Native code is not a silver bullet. If you're implementing a table view cell,
the newbie approach is to just put subviews on the cell for each slice of
content. This performs horribly because the graphics card has to composite all
the sublayers while you're scrolling.

The faster approach, as he alludes to, is to do everything in _one_ view,
using pen operations to move around and blit each section. If you're serious
about smooth scrolling, this is what you have to do. Tweetie was famous for
its smooth scrolling, for example; it's because Loren Brichter used this
approach.

Of course, if you're coming from the web/css world, doing everything with pen
operations seems incredibly foreign and backwards. But you get good at it
quickly. And it's worth it, UX-wise.

~~~
jonknee
> Doing high-performance scrolling is a hard problem. You just can't do it in
> HTML, at all.

Not necessarily. Especially with Apple adding momentum scrolling to Mobile
Safari in iOS 5. I have no problem smoothly scrolling through tables hundreds
of rows long.

------
tsunamifury
The breadth and depth of Khans work is nothing short of astonishing. His
ability to put a large amount of information out there for anyone to use is an
overwhelming kindness.

That being said, Khans work lacks polish. You could suggest that his informal
presentation style is a plus, or that focusing on producing as much content as
possible is more important, but I disagree.

His narration has an erratic cadence and he is often repetitive in a way that
corrects or modifies the previous statement rather than building upon it.

His voice is not "radio-friendly", but thats my personal opinion.

The transcripts are poorly laid out and are nearly impossible to scan
visually, there only use is for search purposes.

The information architecture is clear and to the point, but it's not oriented
to the true beginner. Someone who doesn't already know what the labels mean
wont know why they should or shouldn't learn these items.

I hope khan academy invests in polishing some of the great work he has put
together so far, I think it would be worth the investment.

~~~
UK-AL
There's tons of other resources out their that sound like a professional voice
over. However they have no personality and don't sound like a individual
talking to you one to one.

They sound like they are are polished for a mass audience with no personal
attachment what so ever to the user. They sound like a robot repeating facts
from a book. This is opposite to khan. Khan takes the 'brotherly'(Despite
never knowing you) approach to teaching, and sometimes makes mistakes and
lacks a little bit of polish. I think this is actually the key thing that
makes khan academy work compared to other suppliers.

~~~
sopooneo
Folks, it's not an either or.

------
Macsenour
tidbit: in my high school I was given a math book and told to read the book at
night, and do the homework in the classroom the next day. There were students
at every level sitting at long tables. The two teachers roamed the aisles in
case we had questions. They verified our work and pulled a few of us aside if
we all seemed to be stuck at the same place.

Sounds amazingly like the 60 Minutes story I just heard.

Funny thing is, my high school did this in 1978, and the school was Berkeley
High EAST Campus. Further, it was considered a punishment to be forced to go
there.

Result: I did the 9 month Geometry course, developed at Berkeley High, in 3
months and passed the required exam.

I'd say, this works and I'm living proof.

------
benbjohnson
First off, I'd like to say that Khan Academy is awesome. I've started using it
with my 8-year old daughter to practice math and she loves it.

That being said, I have a few criticisms of the iPad app:

1\. The title of "Watch. Practice. Learn almost anything for free" is
deceptive. I think the strongest point of the Khan Academy web site is the
practice section but it's not available on the iPad app.

2\. The transcript is way too granular. It makes it hard to read and it makes
the transcript really long in some cases. Breaking it out by paragraph
(instead of every 3-5 seconds) would make it more readable. I don't even think
the timestamp needs to be shown.

3\. It'd be nice to see the directed acyclic graph of lesson dependencies like
they have on the site. It's hard to know where to start when you have 2,800
videos.

Great job putting out the app though! It's great to see some good educational
tools for the iPad that don't suck.

~~~
kamens
Thanks for feedback, and agreed on title. There are many 3rd party apps out
there that have taken "Khan Academy" and we didn't want to go through the
legal hassle or harm any developers using our API, so we added that on. We may
eventually have 3rd party apps rename to something slightly less 100%
official.

------
garraeth
My first post, and not directly to the point, apologies.

But if you haven't checked it out, please do check out Khan Academy. One of my
favorite videos is his ~1.5 hour informal session at MIT:
[http://www.khanacademy.org/talks-and-interviews/v/salman-
kha...](http://www.khanacademy.org/talks-and-interviews/v/salman-khan-talk-at-
the-mit-club-of-northern-california)

I really hope he can actually take his ideas to fruition. Getting rid of the
"blob" (industry term he uses sometimes). Getting students to understand 100%
of a topic before moving onto topics that use the previous topic as a
foundation. Paying fewer, good, teachers $100k+ (this may sound bad, please
watch the video to understand what the entails) rather than many (maybe good)
stretched-too-thin teachers the wages they get now. etc. Amazing watch and
well worth an hour of your time.

edit: clarity.

------
tedmiston
(It's not available in the US App Store on my iPad for some reason (iOS
5.0.1).)

Navigation by subtitles is interesting. I wish that existed on the website.
Sites like MIT's Udacity have broken away from the barrier of losing the
user's focus or being redundant by dividing videos into even smaller segments
of just a few minutes with continual questions / exercises for instant
feedback. I wonder if Sal is considering something similar _.

_ I've seen the Exercises feature, but it lacks exercises for most of the
videos.

~~~
kamens
Note that we are currently a/b testing the effects of offering a "transcript"
button under each video on the website itself which does just this. If you're
lucky, you may already have the button.

We'll almost certainly launch it to everyone soon even though the test hasn't
told us much, just b/c we think it's a useful feature.

~~~
bphogan
Just passing this along - transcripts of videos would potentially make this
more useful for low vision, blind users, and the hearing impaired.

------
neebz
apparently it is developed with jQuery and jQuery mobile. Would love to see
how it fares on Android devices.

Our experience with Sencha Touch (wrapped with PhoneGap) has been not so good
on Android performance-wise.

~~~
nathos
Sencha Touch 2.0 is supposed to have significantly better Android performance:
<http://www.sencha.com/blog/announcing-sencha-touch-2/>

------
senthilnayagam
Good to see a native app, I think they are hosting them, my kid used to get
distracted by ads on YouTube videos

~~~
spicyj
That's right, we're hosting them on S3.

------
joelthelion
This is great and all, but the people who can benefit the most from Khan
academy typically don't own and iPad.

~~~
sireat
Naive question here, is there a real need for a native app for iPad in the
first place? Would the iPad's browser not be able to handle all the content on
Khan's Academy?

------
eli
Does anyone know if the app was packaged with PhoneGap? If not, how was it
done?

~~~
spicyj
Not PhoneGap -- we used our own native wrapper for the navigation, etc; the
"right side" of the app (video and subtitles) is all a web view.

------
beatle
great. this and the iTunes University App = Golden

