Fork me on GitHub

Tagged: phonegap RSS

  • britg 7:45 am on September 9, 2008 Permalink | Log in to leave a Comment
    Tags: , , phonegap   

    Ok, Apple Not Stupid – They Have Just Turned Into “The Man” 

    Wow, I got a lot of feedback yesterday.  Protip: don’t call Apple stupid in the title of your blog post if you want Apple fans to read the content of your post!  I got some really thoughtful comments which I’ll go over here, but I got a lot more email that, if there were Cliff’s Notes, would read something like, “no your [sic] stupid.”

    bud says:

    I’m sure apples boilerplate rejection has nothing to do with the apps rejection.

    It is pretty obvious why they would reject it; to prevent hooks from websites into the iphone; potentially malicious hooks.

    Isn’t this obvious? If it is not obvious, you are disingenuous.

    Yes, I agree – most likely Apple is not ignorant of the implications of Big5 and phonegap projects!  There is a small chance that the review team at Apple just didn’t “get it”, but most likely they did get it and decided to keep it under wraps.

    Why? Peter agrees with bud that there are security concerns:

    As has been pointed out, this is rejected because it allows an external application to access information about the iPhone. That said, he’s right that someone at Apple should have explained that rather than using the “limited utility” explanation.

    To wander a little bit afield, though, I worry about this “limited utility to the broad iPhone/iPod touch user community” sentence.

    One of the reasons for third-party developers is to address these areas that are of limited utility to some but valuable to others. For example, medical dictionaries are not of interest to “the broad iPhone/iPod touch community”, though there are some who will find these invaluable. So is Apple now going to try to determine whether there really is a market for your application and decide whether or not enough people would be interested in it?

    He brings up a good point about the implications of Apple deciding what is considered ‘useful’ to the general public.  2 years ago if you had asked me if Twitter was useful to the general public, I would have laughed in your face.  Now, I read the RSS feeds of a bunch of different people on it and I consider it one of the best ways to access people’s raw, unfiltered thoughts.

    Imagine if Apple owned the internet platform and just didn’t see the usefulness of this app…

    But, as I said – Apple isn’t stupid (in the ignorant way), they are just turning into “The Man.”  My partner in crime got so riled up he went so far as to suggest Apple is the new Microsoft.  Personally, I would rather have the new innovative Big5 browser and then patch the security risks later, rather than shutter it out of fear.

    As much as I hate to use Internet Explorer as an example of anything but a steaming pile of sumo wrestler dump on a burning tire, imagine if the 90+% of the people in the 90′s hadn’t been exposed to it because it might have security risks?  We know now that it was chock full of nice juicy security risks, but I would say the exposure to the internet and booming of the industry that pays my bills is a far greater consequence!

     
    • rand 8:10 am on September 9, 2008 Permalink

      Hi again :)

      Assuming that without internet explorer that there would be no mass exposure to the internet is wrong on many levels. Without IE being built into the os, it may have taken a year or two more at worst, but the momentum was definitely there already.

      I have a feeling you'll like android. My personal opinion is that in 10 years, it'll be the windows of the mobile space, full of virus / trojans and whatnot. I've looked (briefly) at how they are doing security, but honestly, not stopping / testing apps before they go out will really make this a playground for a lot of nasty people. But we'll get the apps ;)

    • britg 8:26 am on September 9, 2008 Permalink

      Haha, you're right – I probably will love the wild west of Android.

      I agree that IE itself wasn't that important – but the concept behind it was – release an application that spawns innovation and fix the security holes when they arise. Windows is a nest for malicious software because they chose innovation over caution. But without that, the computer industry wouldn't be where it's at today, and Apple would have never been able to establish itself as the 'safe alternative' and the 'cool kid on the block.'

      The funny thing is, I'm writing this from a macbook pro :)

    • Andrew 10:18 am on September 9, 2008 Permalink

      It's widely known (from internal Microsoft memo's, for example) that Internet Explorer was a response to the Internet's booming success in the 90's, not the other way around.

      If 90+% of people in the 90's hadn't been exposed to Internet Explorer, they'd have used some other browser. Imagine how many fewer sites (and appliances) would require IE now. I dare you to buy a LinkSys managed switch without owning a Window's PC. And it has a web-GUI!

      So you used bad example. Fine. Your point, it would appear, might be summed up with a question like this: “to what degree should Apple manage security risks on the new iPhone platform?”

      There is a whole spectrum of positions one might take on this question. But there are a few aspects of the iPhone as a software platform to keep in mind:

      - Apple has said publicly that the iPhone/iPod Touch are a huge part of their handheld computing platform
      - Apple's 'plaftorms' since the return of Jobs have life times measured in decades (iMac, notebooks, Xserve, Mac OS X, iPod)
      - The iPhone as a software platform is only 3 months old

      Discussions like this one can serve to inform and even apply pressure as Apple continues to develop this nascent platform. But to expect Apple to treat the iPhone platform as a mature platform (even if it is fairly polished compared to other handheld platforms) might be a bit like asking a parent to make their toddler clean up her room before she can watch TV. Right idea; wrong time.

    • britg 10:35 am on September 9, 2008 Permalink

      Interesting argument, and yes I agree the iphone platform is still in its
      infancy. But, I see no reason why we can't take a look at now-mature
      platforms (like the internet) and apply the some critical thinking. Namely,
      walled gardens don't work (AOL, etc). Also, no matter how secure you think
      you are – someone is always out there smarter and more determined than you
      to break your security (DRM, etc).
      So, Apple needs to allow applications like Big5 to roam free. If it's an
      issue where they KNOW about security risks and just haven't fixed them yet,
      then be upfront damnit – Dirk spent quite a lot of time on Big5 and got
      absolutely nothing in return. There are other phonegap developers like
      myself that are frustrated for him.

    • Mjoecups 12:52 pm on September 9, 2008 Permalink

      There are plenty of ways to install whatever you want on iphone. It's called jailbreaking, and plenty of people have been doing it for a long time.

      Much like Nokia has a signing method for there S60 apps, but people can still bypass this and experiment.

      If you want to play with cutting edge stuff, jailbreak the phone and quit whining. The rest of Apple's “normal” customers are probably much better off with Apple doing a bit of QC for them first.

    • gishdog 11:48 am on September 11, 2008 Permalink

      Yea… you've completely missed the point.

      Apple is arbitrarily choosing what apps they allow and what they don't – even if an application follows all of the rules that they've set out for their developers.

      Apple shouldn't decide what apps are in the best interests of their audience… iPhone owners are pretty much as diverse as they come and Apple deciding which applications fills their users needs is impossible. I'm not an iPhone gamer, but I'd buy an “ultimate guitar chord/scale” app. I would also use an app like Big5 – because, like a lot of iPhone users – I'm technically inclined and I like the Internet – and if I could visit a site that takes advantage of the features of the $300 phone that I'm browsing a site on, I would like that.

      All of this close-mindeness and opaqueness poses a really really obvious problem – if developers are going to invest (RISK) their time and expertise developing for a proprietary platform with no guarantee that they will be allowed to actually launch their app at some point developers are going to stop innovating and the only apps on the app store will be bejeweled clones and flashlights.

    • gishdog 6:48 pm on September 11, 2008 Permalink

      Yea… you've completely missed the point.

      Apple is arbitrarily choosing what apps they allow and what they don't – even if an application follows all of the rules that they've set out for their developers.

      Apple shouldn't decide what apps are in the best interests of their audience… iPhone owners are pretty much as diverse as they come and Apple deciding which applications fills their users needs is impossible. I'm not an iPhone gamer, but I'd buy an “ultimate guitar chord/scale” app. I would also use an app like Big5 – because, like a lot of iPhone users – I'm technically inclined and I like the Internet – and if I could visit a site that takes advantage of the features of the $300 phone that I'm browsing a site on, I would like that.

      All of this close-mindeness and opaqueness poses a really really obvious problem – if developers are going to invest (RISK) their time and expertise developing for a proprietary platform with no guarantee that they will be allowed to actually launch their app at some point developers are going to stop innovating and the only apps on the app store will be bejeweled clones and flashlights.

    • Club Penguin Cheats 2:25 am on September 2, 2009 Permalink

      My personal opinion is that in 10 years, it'll be the windows of the mobile space, full of virus / trojans and whatnot. I've looked (briefly) at how they are doing security, but honestly, not stopping / testing apps before they go out will really make this a playground for a lot of nasty people.

  • britg 7:29 am on September 8, 2008 Permalink | Log in to leave a Comment
    Tags: , , , phonegap   

    Apple Too Stupid to Understand Utility of Outside-The-Box Apps 

    UPDATE: Apple Isn’t Stupid – They’re Just “The Man”

    The problem with an application review process like the one Apple has in place is that there are humans on the reviewing end that are most likely too stupid or narrow minded to pick up on really innovative applications.

    I don’t care if the reviewers are the people who built the platform and think they know what it can do like the back of their hand. They will not immediately understand the usefulness of some applications, and those applications may be game changers. Instead of being introduced to the public and living or dying by a meritocracy, they will probably get a message like this:

    Dear Developer,

    We’ve reviewed your application Big Five.   We have determined that this
    application is of limited utility to the broad iPhone and iPod touch
    user community, and will not be published to the App Store.

    Sincerely,

    What is Big Five?  A very useful application developed by Dirk Holtwick.  It’s an alternative web browser for the iphone that enables websites to use the native iphone APIs.  So, as a web developer if I knew that visitors where visiting through Big Five, I could offer special functionality, like integrated location using their iphone’s GPS, or accelerometer functionality, etc.  Oh, and I could do all this without ever having to know Objective C or Cocoa Touch – I could use the javascript I already know and love!

    (Big Five is built on the phonegap project which I talked here about and contributed to here and here.)

    It’s really a very interesting application that opens up game changing possibilities for the browsing experience!  But, alas Joe Q Reviewer has decided that this is of limited functionality to the public.

    Why does apple think this application is of limited use to the public?  Here are two possible justifications (albeit bad ones) that I can think the reviewer may have.  (Oh, by the way they did not offer any of these justifications, just the short and incredibly useless message I posted above).

    “Well, it is of limited use because there are no websites out there that take advantage of big5 yet.”  Huh?  The logic behind that is so incredibly stupid that I don’t know where to begin.

    “This application is targetting developers more than it is targetting the public.”  It targets developers in order to provide a richer experience for end-users!  If Apple would provide phone-gap like functionality in Safari itself, then maybe we wouldn’t need Big Five, but alas they have not.

    The bottom line is that the application review process is tedious, narrow minded, and broken.  I wish at the very least Apple would provide a reason or some pointers to why Big Five isn’t considered useful.  I also wonder if I should not waste any time developing phonegap enabled applications because Apple is too dense to understand the possibilities it opens up?

     
    • rand 7:28 am on September 8, 2008 Permalink

      I'm sure they would prefer all web browsing to go through their implementation of webkit for consistency while trying to build this platform, whether they relax this in the future is anyone's guess.

      Also, I just looked through the Big5 site, and while it is a great idea, the implementation is very messy. Go into safari, type in big5's address, put in your new url, [done], save as bookmark on desktop. Then open bookmark (back to safari again) which then pass's off the url to the big5 app.

      Honestly, it's a mess. Not sure if the one they submitted to the app store was a cleaner version, but if it was like this preview, it's not hard to see why it was rejected.

      And calling an entire company stupid for rejecting something that really has a very bad user interface, is well, kinda over the top.

    • rand 7:28 am on September 8, 2008 Permalink

      I'm sure they would prefer all web browsing to go through their implementation of webkit for consistency while trying to build this platform, whether they relax this in the future is anyone's guess.

      Also, I just looked through the Big5 site, and while it is a great idea, the implementation is very messy. Go into safari, type in big5's address, put in your new url, [done], save as bookmark on desktop. Then open bookmark (back to safari again) which then pass's off the url to the big5 app.

      Honestly, it's a mess. Not sure if the one they submitted to the app store was a cleaner version, but if it was like this preview, it's not hard to see why it was rejected.

      And calling an entire company stupid for rejecting something that really has a very bad user interface, is well, kinda over the top.

    • britg 7:37 am on September 8, 2008 Permalink

      Haha, ok I agree the headline was a bit over the top, but it just reads better than 'Some Team In Apple's Iphone App Review Department Is Too Stupid To Understand Utility of Outside-The-Box Apps”.

      Regarding your points – the first few steps of that messy process is meant to be alleviated by getting approved for the app store. If Big5 were a downloadable app, all a user would have to do is 1) open the app, 2) type in the web address just like in Safari.

      You are probably right about apple censoring apps that act as another web browser for whatever reason. But, just compare that what Microsoft got in a lot of trouble for doing with Internet explorer in windows. Same exact situation.

    • britg 7:37 am on September 8, 2008 Permalink

      Haha, ok I agree the headline was a bit over the top, but it just reads better than 'Some Team In Apple's Iphone App Review Department Is Too Stupid To Understand Utility of Outside-The-Box Apps”.

      Regarding your points – the first few steps of that messy process is meant to be alleviated by getting approved for the app store. If Big5 were a downloadable app, all a user would have to do is 1) open the app, 2) type in the web address just like in Safari.

      You are probably right about apple censoring apps that act as another web browser for whatever reason. But, just compare that what Microsoft got in a lot of trouble for doing with Internet explorer in windows. Same exact situation.

    • Dick Mitchell 8:11 am on September 8, 2008 Permalink

      The problem with Big Five, from my perspective, is that apps would essentially be delivered to iPhones without being distributed by Apple. There are inherit security and bandwidth concerns with iPhone applications, which is the reason Apple has to review and approve iPhone apps to begin with.

    • Dick Mitchell 8:11 am on September 8, 2008 Permalink

      The problem with Big Five, from my perspective, is that apps would essentially be delivered to iPhones without being distributed by Apple. There are inherit security and bandwidth concerns with iPhone applications, which is the reason Apple has to review and approve iPhone apps to begin with.

    • James Katt 8:16 am on September 8, 2008 Permalink

      Apple is not dense at all.
      Apple constantly thinks outside-the-box.

      Realize that Big-Five is a web browser. This means it RUNS CODE.
      Apple's developer guidelines PROHIBIT an application from RUNNING CODE.

      Obviously it is simple that Big-Five would be denied from appearing on the App Store.

      To run Big Five, you would have to jailbreak the iPhone. Simple.

    • James Katt 8:16 am on September 8, 2008 Permalink

      Apple is not dense at all.
      Apple constantly thinks outside-the-box.

      Realize that Big-Five is a web browser. This means it RUNS CODE.
      Apple's developer guidelines PROHIBIT an application from RUNNING CODE.

      Obviously it is simple that Big-Five would be denied from appearing on the App Store.

      To run Big Five, you would have to jailbreak the iPhone. Simple.

    • britg 8:18 am on September 8, 2008 Permalink

      Very true and this is what scares me the most- not that the reviewers
      are stupid but that they DO understand and are intentionally blocking

    • britg 8:18 am on September 8, 2008 Permalink

      Very true and this is what scares me the most- not that the reviewers
      are stupid but that they DO understand and are intentionally blocking

    • britg 8:24 am on September 8, 2008 Permalink

      Wrong on every level – big5 uses exactly the same tools that every
      other app uses!

    • britg 8:24 am on September 8, 2008 Permalink

      Wrong on every level – big5 uses exactly the same tools that every
      other app uses!

    • Nat X 10:47 am on September 8, 2008 Permalink

      Based on your description of the product, I'd reject it for security reasons alone. Having watched the screencast I'd go so far as to say that anyone who expected this convoluted nightmare of uselessness to sell is either too stupid to understand the meaning of terms such as “utility” and “outside-the-box” or is suffering from pathological delusions of adequacy.

      Those “Pull My Finger” guys I can sympathize with, but really, you're throwing a very sad little rage against the machine temper tantrum over something any rational person should have not only anticipated but expected. The icon alone screams “amateur.”

    • Nat X 10:47 am on September 8, 2008 Permalink

      Based on your description of the product, I'd reject it for security reasons alone. Having watched the screencast I'd go so far as to say that anyone who expected this convoluted nightmare of uselessness to sell is either too stupid to understand the meaning of terms such as “utility” and “outside-the-box” or is suffering from pathological delusions of adequacy.

      Those “Pull My Finger” guys I can sympathize with, but really, you're throwing a very sad little rage against the machine temper tantrum over something any rational person should have not only anticipated but expected. The icon alone screams “amateur.”

    • britg 11:15 am on September 8, 2008 Permalink

      Saying Big5 is useless is similar to saying Firefox was stupid when it came out. Or, that any browser but Internet Explorer and Safari are stupid.

      Here's the big secret – Big5 uses the exact same SDK as every other app. The SDK provides a component to access websites, called WebView, that lots of apps use, including Big5. The security risk in Big5 is the same security risk that any application that accesses a web site has!

    • britg 11:15 am on September 8, 2008 Permalink

      Saying Big5 is useless is similar to saying Firefox was stupid when it came out. Or, that any browser but Internet Explorer and Safari are stupid.

      Here's the big secret – Big5 uses the exact same SDK as every other app. The SDK provides a component to access websites, called WebView, that lots of apps use, including Big5. The security risk in Big5 is the same security risk that any application that accesses a web site has!

    • bud 12:38 pm on September 8, 2008 Permalink

      I'm sure apples boilerplate rejection has nothing to do with the apps rejection.

      It is pretty obvious why they would reject it; to prevent hooks from websites into the iphone; potentially malicious hooks.

      Isn't this obvious? If it is not obvious, you are disingenuous.

    • bud 12:38 pm on September 8, 2008 Permalink

      I'm sure apples boilerplate rejection has nothing to do with the apps rejection.

      It is pretty obvious why they would reject it; to prevent hooks from websites into the iphone; potentially malicious hooks.

      Isn't this obvious? If it is not obvious, you are disingenuous.

    • britg 12:56 pm on September 8, 2008 Permalink

      If that is the case, Apple owes it to their developers to give us that type of explanation. I think there is a chance here the reviewer or team of reviewers just didn't think outside of the box, and decided that we don't need another web browser app.

      If they really did understand the full implications of the app and denied it with a boilerplate response then it's not worth the time and effort to make a remotely innovative iphone application in my opinion.

    • britg 12:56 pm on September 8, 2008 Permalink

      If that is the case, Apple owes it to their developers to give us that type of explanation. I think there is a chance here the reviewer or team of reviewers just didn't think outside of the box, and decided that we don't need another web browser app.

      If they really did understand the full implications of the app and denied it with a boilerplate response then it's not worth the time and effort to make a remotely innovative iphone application in my opinion.

    • Peter 3:05 pm on September 8, 2008 Permalink

      As has been pointed out, this is rejected because it allows an external application to access information about the iPhone. That said, he's right that someone at Apple should have explained that rather than using the “limited utility” explanation.

      To wander a little bit afield, though, I worry about this “limited utility to the broad iPhone/iPod touch user community” sentence.

      One of the reasons for third-party developers is to address these areas that are of limited utility to some but valuable to others. For example, medical dictionaries are not of interest to “the broad iPhone/iPod touch community”, though there are some who will find these invaluable. So is Apple now going to try to determine whether there really is a market for your application and decide whether or not enough people would be interested in it?

    • Peter 3:05 pm on September 8, 2008 Permalink

      As has been pointed out, this is rejected because it allows an external application to access information about the iPhone. That said, he's right that someone at Apple should have explained that rather than using the “limited utility” explanation.

      To wander a little bit afield, though, I worry about this “limited utility to the broad iPhone/iPod touch user community” sentence.

      One of the reasons for third-party developers is to address these areas that are of limited utility to some but valuable to others. For example, medical dictionaries are not of interest to “the broad iPhone/iPod touch community”, though there are some who will find these invaluable. So is Apple now going to try to determine whether there really is a market for your application and decide whether or not enough people would be interested in it?

    • britg 3:12 pm on September 8, 2008 Permalink

      Yeah, good points about the impact of 'limited utility'. Your last question
      has scary implications, and if the answer is 'yes' I see the application
      pool stagnating after a certain number of iPint's and 'Pull my thumb' apps
      being released.

    • britg 3:12 pm on September 8, 2008 Permalink

      Yeah, good points about the impact of 'limited utility'. Your last question
      has scary implications, and if the answer is 'yes' I see the application
      pool stagnating after a certain number of iPint's and 'Pull my thumb' apps
      being released.

    • Dirk 7:13 am on September 9, 2008 Permalink

      Hi, I'm the author of Big5. I think I have to clarify some technical misunderstandings.

      1 Big5 was developed on the basis of the current iPhone 3G SDK, no jailbreaking or other things at all;
      2 as a browser it uses the SDK's UIWebKit component and just public methods and delegates of it;
      3 The big5: schema startup shown in the screencast is an additional feature to bring Big5 apps to the home screen (that's the only way apart of submitting apps to the AppStore); the way this is implemented is a SDK compatible way (see SDK demo app “LaunchMe” for details)
      4 In the preferences of Big5 you can explicitly switch off functionalities to gain security and privacy
      5 Apple just doesn't allow software that does not use “interpreters that are not yet on the iphone” that means Big5 doesn't hurt the SDK agreement, because it uses the unmodified Javascript interpreter of UIWebKit

      Hope I got all the points. Thanks for your interest.
      Dirk

    • Dirk 7:13 am on September 9, 2008 Permalink

      Hi, I'm the author of Big5. I think I have to clarify some technical misunderstandings.

      1 Big5 was developed on the basis of the current iPhone 3G SDK, no jailbreaking or other things at all;
      2 as a browser it uses the SDK's UIWebKit component and just public methods and delegates of it;
      3 The big5: schema startup shown in the screencast is an additional feature to bring Big5 apps to the home screen (that's the only way apart of submitting apps to the AppStore); the way this is implemented is a SDK compatible way (see SDK demo app “LaunchMe” for details)
      4 In the preferences of Big5 you can explicitly switch off functionalities to gain security and privacy
      5 Apple just doesn't allow software that does not use “interpreters that are not yet on the iphone” that means Big5 doesn't hurt the SDK agreement, because it uses the unmodified Javascript interpreter of UIWebKit

      Hope I got all the points. Thanks for your interest.
      Dirk

    • britg 7:42 am on September 9, 2008 Permalink

      Thanks Dirk for shedding some light.

    • britg 7:42 am on September 9, 2008 Permalink

      Thanks Dirk for shedding some light.

    • rand 8:04 am on September 9, 2008 Permalink

      The difference is that Microsoft and Internet Explorer have 90%+ of the market, at the time they were doing it, more. That was the reason they got into trouble.

      Apple has what, world wide, a few percentage of the smart phone market? Lots of competition there.

      Thanks for the polite reply :)

    • rand 8:04 am on September 9, 2008 Permalink

      The difference is that Microsoft and Internet Explorer have 90%+ of the market, at the time they were doing it, more. That was the reason they got into trouble.

      Apple has what, world wide, a few percentage of the smart phone market? Lots of competition there.

      Thanks for the polite reply :)

    • Doug Petrosky 2:47 pm on September 9, 2008 Permalink

      The web has absolutely no patience what so ever! When the iPhone 1.0 came out Apple had plans for the iPhone SDK but there was no way to release a stable product and a wide open platform in their time frame. Now, 2 months after the AppStore opens it doors people are giving Apple a hard time about denying a very small number of applications. Apple is not evil nor too Stupid to allow this application in. It is just not ready. The developer can educate Apple on the product and it may well make it back into the store some time in the future.

      Give them some time to take a breath! They are still trying to stabilize the phone and SDK when it's developers are calling into them. Opening these to web designers takes additional consideration.

    • Doug Petrosky 2:47 pm on September 9, 2008 Permalink

      The web has absolutely no patience what so ever! When the iPhone 1.0 came out Apple had plans for the iPhone SDK but there was no way to release a stable product and a wide open platform in their time frame. Now, 2 months after the AppStore opens it doors people are giving Apple a hard time about denying a very small number of applications. Apple is not evil nor too Stupid to allow this application in. It is just not ready. The developer can educate Apple on the product and it may well make it back into the store some time in the future.

      Give them some time to take a breath! They are still trying to stabilize the phone and SDK when it's developers are calling into them. Opening these to web designers takes additional consideration.

    • gishdog 11:26 am on September 11, 2008 Permalink

      I'm sorry but the “Apple's just not ready for them” argument doesn't float with me.

      Apple is approaching iPhone development very dogmatically; from the NDA that a developer has to agree to when they download the SDK to the generic form emails they send out when they reject an app – it all stinks of premeditation on the part of Apple.

      Apple is deciding which apps get into the store and which apps don't, without shedding any light onto why they make that decision. If they wanted to encourage someone to resubmit an app at a later date when that person has followed all of the rules laid out, put quite a bit of time and effort into developing an app on their platform and been rejected with nothing to show for it then they should explain why an app has been rejected. The mere existence of the generic rejection emails suggests that tons of apps are being rejected.

    • gishdog 11:26 am on September 11, 2008 Permalink

      I'm sorry but the “Apple's just not ready for them” argument doesn't float with me.

      Apple is approaching iPhone development very dogmatically; from the NDA that a developer has to agree to when they download the SDK to the generic form emails they send out when they reject an app – it all stinks of premeditation on the part of Apple.

      Apple is deciding which apps get into the store and which apps don't, without shedding any light onto why they make that decision. If they wanted to encourage someone to resubmit an app at a later date when that person has followed all of the rules laid out, put quite a bit of time and effort into developing an app on their platform and been rejected with nothing to show for it then they should explain why an app has been rejected. The mere existence of the generic rejection emails suggests that tons of apps are being rejected.

    • Al Brown 8:00 pm on November 5, 2008 Permalink

      Apple is going to act in its own interests. And yes, that's just as evil as you acting in yours. Its a total outrage.

    • Al Brown 8:00 pm on November 5, 2008 Permalink

      Apple is going to act in its own interests. And yes, that's just as evil as you acting in yours. Its a total outrage.

    • Al Brown 4:00 am on November 6, 2008 Permalink

      Apple is going to act in its own interests. And yes, that's just as evil as you acting in yours. Its a total outrage.

    • Club Penguin Cheats 2:25 am on September 2, 2009 Permalink

      Apple is not evil nor too Stupid to allow this application in. It is just not ready. The developer can educate Apple on the product and it may well make it back into the store some time in the future.

    • Avatar Free Online Games 7:51 pm on October 15, 2009 Permalink

      Apple just likes to do things their way.

    • Luxury Car Seat 4:07 pm on October 29, 2009 Permalink

      Apple is not evil nor too Stupid to allow this application in. It is just not ready. The developer can educate Apple on the product and it may well make it back into the store some time in the future.

    • Payday Loans 12:05 pm on April 21, 2010 Permalink

      The iPad only runs apps from the App Store. The same App Store that is notorious for banning apps for no real reason, such as Google Voice. Sure, netbooks might not have touchscreens, but you can install whatever software you’d like on them. Want to run a different browser on your iPad? Too bad!

    • Club Penguin Cheats 9:35 pm on April 29, 2010 Permalink

      Well, over time Apple will be more open to niche apps in the future.

    • registry cleaners 2:17 am on June 7, 2010 Permalink

      That is right.

    • High heels for women 7:24 am on October 7, 2010 Permalink

      Apple is not evil nor too Stupid to allow this application in. It is just not ready. The developer can educate

    • louis 10:51 pm on November 10, 2010 Permalink

      This looks absolutely perfect. All these tinny details are made with lot of background knowledge. I like it a lot. This was a useful post and I think it is rather easy to see from the other comments as well that this post is well written and useful.

    • stretch marks 4:24 pm on December 3, 2010 Permalink

      I am truly grateful to have known this. I am currently searching topics pertaining to this subject here. I am making a report for my company to list the said companies that are affiliated to some of our sources. I thank you. I would definitely track the author's future posts.

    • mole removal 8:57 pm on January 6, 2011 Permalink

      Yeah! I totally agree with you. I like the way you you elaborated this very well. I hope you post more topics that are related about this. This is very informative and very well written. Your really are an expert. I salute you! Nice job!

  • britg 9:44 am on August 23, 2008 Permalink | Log in to leave a Comment
    Tags: , phonegap   

    Fixing the Keyboard Issue on the Current Version of PhoneGap 

    PhoneGap currently has an issue with the keyboard not appearing whenever a form input is selected on a web site.  The key here is that the keyboard IS actually showing up, but it is being drawn behind the UIWebView used to render the webpage.

    Here’s the solution I came up with.  I don’t understand enough about the rendering heirarchy to explain the why, but here’s the how:

    In the GlassAppDelegate.m source file you should see a block of code that looks like the following:

     // Set up the image picker controller and add it to the view
    	imagePickerController = [[UIImagePickerController alloc] init];
    
    	// Im not sure why the next line was giving me a warning... any ideas?
    	// when this is commented out, the cancel button no longer works.
    	imagePickerController.delegate = self;
    	imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    	[window addSubview:imagePickerController.view];

    Simply move this block of code BELOW the following line. This renders the imagePicker object after the web view.

    webView.delegate = self;

    Problem – the imagePicker is obscuring the web view! Simply add the statment imagePickerController.view.hidden = YES; to the above block of code so that the entire block looks like:

     // Set up the image picker controller and add it to the view
    	imagePickerController = [[UIImagePickerController alloc] init];
    
    	// Im not sure why the next line was giving me a warning... any ideas?
    	// when this is commented out, the cancel button no longer works.
    	imagePickerController.delegate = self;
    	imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
            imagePickerController.view.hidden = YES;
    	[window addSubview:imagePickerController.view];

    As it sounds like, we are just hiding the imagePickerController’s view – we don’t need it when the application starts anyways. But, we do need it when we access the images API through javascript, so find the block:

    else if([(NSString *)[parts objectAtIndex:1] isEqualToString:@"getphoto"]){
    				NSLog(@"Photo request!");
    				NSLog([parts objectAtIndex:2]);
    
    				webView.hidden = YES;
            [window bringSubviewToFront:imagePickerController.view];
    				NSLog(@"photo dialog open now!");
    }

    and add the line imagePickerController.view.hidden = NO; above webView.hidden = YES; so that the entire block looks like:

    else if([(NSString *)[parts objectAtIndex:1] isEqualToString:@"getphoto"]){
    				NSLog(@"Photo request!");
    				NSLog([parts objectAtIndex:2]);
            imagePickerController.view.hidden = NO;
    				webView.hidden = YES;
            [window bringSubviewToFront:imagePickerController.view];
    				NSLog(@"photo dialog open now!");
    }

    Voila! Compile and run the app and the keyboard should now appear when a form input is pressed on your iphone.

     
    • Zach Allia 3:00 pm on August 25, 2008 Permalink

      do you have all your changes posted anywhere?

    • britg 3:37 pm on August 25, 2008 Permalink

      No, sorry I made a bunch of other custom changes for my specific application
      so I didn't put them on github or anywhere else. Would you like the this
      GlassAppDelegate.m? I can't promise I didn't do something else in the code
      for my app though

    • zachallia 8:19 pm on August 26, 2008 Permalink

      no worries, i have a bunch of custom changes too… but was hoping to see some of this get centralized.

    • britg 5:30 am on August 27, 2008 Permalink

      yeah, i hear ya – need to get git up and running so I can commit to my fork on github

    • sintaxi 11:01 am on August 27, 2008 Permalink

      This is a fantastic problem to run into. I started a discussion on the google group to discuss contributing. We need your feedback. I am prepared to offer support to anyone who needs help with git and plan to document the step by step procedure on how people can submit a pull request. Great work guys!

      http://groups.google.com/group/phonegap/browse_…

    • britg 11:05 am on August 27, 2008 Permalink

      Sweet, that's the kind of kick in the pants I need to start contributing – i'll hop into that google group discussion

    • britg 12:30 pm on August 27, 2008 Permalink

      yeah, i hear ya – need to get git up and running so I can commit to my fork on github

    • sintaxi 6:01 pm on August 27, 2008 Permalink

      This is a fantastic problem to run into. I started a discussion on the google group to discuss contributing. We need your feedback. I am prepared to offer support to anyone who needs help with git and plan to document the step by step procedure on how people can submit a pull request. Great work guys!

      http://groups.google.com/group/phonegap/browse_…

    • britg 6:05 pm on August 27, 2008 Permalink

      Sweet, that's the kind of kick in the pants I need to start contributing – i'll hop into that google group discussion

  • britg 10:57 am on August 22, 2008 Permalink | Log in to leave a Comment
    Tags: , phonegap   

    Extending PhoneGap to Return the iPhone’s Unique Identifier 

    Yesterday I wrote about the nascent project, PhoneGap, that acts as a Cocoa Touch-native wrapper to your web-based application.  I’ve been playing with it non-stop since I stumbled accross it and it works like a charm!

    When phonegap initializes, it loads a few parameters from the client iPhone into your javascript environment.  By default these include the phone model, version, and gap version.  For my specific application, I wanted to load the iPhone’s unique identifier.

    To add this uniqueIdentifier parameter is simple – looking in the phonegap sources, Find the GlassAppDelegate.m script in the Classes folder. Using Xcode’s method-finder bar, navigate to the (void)webViewDidStartLoad:(UIWebView *) method and replace it with the following:

    - (void)webViewDidStartLoad:(UIWebView *)webViewLocal {
    	NSLog(@"Page loaded");
    	NSString *jsCallBack = nil;
    	jsCallBack = [[NSString alloc] initWithFormat:@"\
    				  __gap = true; \
    				  __gap_version='0.1'; \
    				  __gap_device_model='%s'; \
    				  __gap_device_version='%s'; \
    				  __gap_device_uniqueid='%s';",
    				  [[[UIDevice currentDevice] model] UTF8String],
    				  [[[UIDevice currentDevice] systemVersion] UTF8String],
    				  [[[UIDevice currentDevice] uniqueIdentifier] UTF8String]
    				  ];
    	//NSLog(jsCallBack);
    	[webViewLocal stringByEvaluatingJavaScriptFromString:jsCallBack];
    	[jsCallBack release];
    
    }

    I’m simply access the uniqueIdentifier property of Cocoa’s UIDevice class.

    To be able to access this paramter in your javascript, jump into the gap.js that you should be loading in your iphone web app, find the Device.init function, and replace with:

        init: function(model, version) {
            try {
                Device.available = __gap;
                Device.model = __gap_device_model;
                Device.version = __gap_device_version;
                Device.gapVersion = __gap_version;
    			Device.uniqueIdentifier = __gap_device_uniqueid;
            } catch(e) {
                alert("GAP is not supported!")
            }
        },

    Voila! You can now access the client iphone’s unique identifier via Device.uniqueIdentifier in your javascript.

    Next up – figuring out how to access the keyboard through the UIWebView :X

     
    • Zach Allia 12:06 pm on August 22, 2008 Permalink

      awesome… and thanks for figuring out the keyboard issue!

    • britg 12:09 pm on August 22, 2008 Permalink

      hey no problem!

    • Lieven Gekiere 11:30 am on August 23, 2008 Permalink

      I get an “undefined” after adding all this to my project … any idea's ?

    • britg 11:36 am on August 23, 2008 Permalink

      Hmm, when and where are you getting undefined? i.e. what's the context? Are you doing something like alert(Device.uniqueIdentifier) ?

      If you can pastie your javascript code, maybe I can weed out the issue.

    • Lieven Gekiere 2:34 am on August 24, 2008 Permalink

      Here's the JS part

      *************
      var Device = {

      available: false,
      model: “”,
      version: “”,
      isIPhone: null,
      isIPod: null,

      init: function(model, version) {
      try {
      Device.available = __gap;
      Device.model = __gap_device_model;
      Device.version = __gap_device_version;
      Device.gapVersion = __gap_version;
      Device.uniqueIdentifier = __gap_device_uniqueid;
      } catch(e) {
      alert(“GAP is not supported!”)
      }
      },

      *************

      and in my page i have :

      *************
      window.onload = function()
      {
      Device.init();
      $('infomodel').innerHTML = Device.model;
      $('infoversion').innerHTML = Device.version;
      $('infouniqueid').innerHTML = Device.uniqueIdentifier;

      Device.Location.callback = updateLocationCallback;
      Device.Image.callback = 'image.lasso?data=';
      }
      ….

      *************

    • britg 10:56 am on August 24, 2008 Permalink

      Hmm, that all looks solid. Here's a silly question – you've compiled and re-run the phonegap app in xcode, correct? also, are you using your physical iphone or the simulator?

    • Lieven Gekiere 3:28 am on August 27, 2008 Permalink

      Could this be linked to the fact i'm using a 1st generation iPhone ? Is that not supported on them ?

    • Lieven Gekiere 3:28 am on August 27, 2008 Permalink

      Could this be linked to the fact i'm using a 1st generation iPhone ? Is that not supported on them ?

    • britg 5:21 am on August 27, 2008 Permalink

      From everything I've read I assumed that the ID is available to all iphones
      and ipod touches. I can't find a case in my limited searching where the
      first gen iphones done return a unique Identifier, but I don't have one
      myself.

    • britg 5:21 am on August 27, 2008 Permalink

      From everything I've read I assumed that the ID is available to all iphones
      and ipod touches. I can't find a case in my limited searching where the
      first gen iphones done return a unique Identifier, but I don't have one
      myself.

    • Lieven Gekiere 8:40 am on August 30, 2008 Permalink

      I tried implementing this again in the latest build … but with no success. All other GAP functions do not react anymore …

      Maybe you need to explain this to Sintaxi, so he can build it in in the next master.

      L.

    • Lieven Gekiere 8:40 am on August 30, 2008 Permalink

      I tried implementing this again in the latest build … but with no success. All other GAP functions do not react anymore …

      Maybe you need to explain this to Sintaxi, so he can build it in in the next master.

      L.

    • britg 9:25 am on August 30, 2008 Permalink

      Yes, I will definitely suggest adding this in to the trunk – not sure what
      problems you're running into as I didn't see those. If you can pastebin
      your code somewhere I will try to find some time to look at it in the next
      couple days.

    • britg 9:25 am on August 30, 2008 Permalink

      Yes, I will definitely suggest adding this in to the trunk – not sure what
      problems you're running into as I didn't see those. If you can pastebin
      your code somewhere I will try to find some time to look at it in the next
      couple days.

    • Sahil Desai 12:30 am on September 1, 2008 Permalink

      any luck with getting access to the keyboard through uiwebview? I've been racking my brain trying to find a way. the only thing I could think of was to (for my specific example), create a stringByEvaluatingJavaScriptFromString message, where the javascript looks for a specific “id” on the page and then calls .focus() on it… I was hoping it would work, but no dice. it seems although it gains focus, that isn't enough to tell the iphone to pull up the keyboard :S

    • Sahil Desai 12:30 am on September 1, 2008 Permalink

      any luck with getting access to the keyboard through uiwebview? I've been racking my brain trying to find a way. the only thing I could think of was to (for my specific example), create a stringByEvaluatingJavaScriptFromString message, where the javascript looks for a specific “id” on the page and then calls .focus() on it… I was hoping it would work, but no dice. it seems although it gains focus, that isn't enough to tell the iphone to pull up the keyboard :S

    • britg 5:09 am on September 1, 2008 Permalink

      Hey Sahil – yes actually I did get the problem fixed. You can find my
      solution here:
      http://britg.com/2008/08/23/fixing-the-keyboard…

      Hope that helps!

    • britg 5:09 am on September 1, 2008 Permalink

      Hey Sahil – yes actually I did get the problem fixed. You can find my
      solution here:
      http://britg.com/2008/08/23/fixing-the-keyboard…

      Hope that helps!

    • Sahil Desai 7:30 am on September 1, 2008 Permalink

      any luck with getting access to the keyboard through uiwebview? I've been racking my brain trying to find a way. the only thing I could think of was to (for my specific example), create a stringByEvaluatingJavaScriptFromString message, where the javascript looks for a specific “id” on the page and then calls .focus() on it… I was hoping it would work, but no dice. it seems although it gains focus, that isn't enough to tell the iphone to pull up the keyboard :S

    • britg 12:09 pm on September 1, 2008 Permalink

      Hey Sahil – yes actually I did get the problem fixed. You can find my
      solution here:
      http://britg.com/2008/08/23/fixing-the-keyboard…

      Hope that helps!

c
compose new post
j
next post/next comment
k
previous post/previous comment
r
reply
e
edit
o
show/hide comments
t
go to top
l
go to login
h
show/hide help
esc
cancel