Cross-platform Apps Using Enyo

edited January 2012 in General
We're happy to have several of our webOS developers porting their apps to other platforms using Enyo. We'll try to highlight them here.

First, there's James Harris who did the excellent Flash Cards app on webOS. It's now Flash Cards to Go with versions for iOS, Chrome, and a bunch of other platforms.

Second, we've got Ryan Watkins who wrote Paper Mache for the TouchPad. He's now got a Enyo-based version of it in the Android Marketplace. Congratulations!

More to come!
«1

Comments

  • edited January 2012
    Great News! The apps look great.

    Were they written with 1.0 or 2.0? Were the UI elements used? I assume we can go ahead and start using them (UI elements)?
    Thanks
  • These apps are all Enyo 1.0 apps, originally developed for webOS on the Touchpad, I think. I imagine it'll be a day or two before Enyo 2.0 apps will start showing up in the wild.
  • If the application was originally developed for the TouchPad then it's likely a Enyo 1.0 application. Enyo 2.0 is being built from the ground up to work on multiple platforms where Enyo 1.0 was developed for the webOS platform(s) only.
  • How do you compile an Enyo 1.0 app for Android? I have a couple Enyo apps that I definitely wouldn't mind making available on a platform with shall we say, rather more currently available devices.
  • @Dacelbot:

    I think you can use phonegap to bundle an Enyo 1.0 app for both Android and iOS.

    http://phonegap.com/

    Since Adobe bought Nitobi, phonegap has been donated to the Apache Foundation, I think the new url project is at:

    http://incubator.apache.org/callback/

    They renamed it from Phonegap --> Apache Callback --> Apache Cordova.

    Anyway, this should get you going!
  • hi unwiredben, you guys really doing great. On top of it, I like this new forum apps, just that is there any email notification feature similar to google group?

    Since you intend to support non-webkit browser in Enyo 2.0 (my imagination this is huge effort), I hope it would not reduce the quality of fine details in UI representation that you had in Enyo 1.0

    Is there a way to use Enyo 2.0 and using Enyo 1.0 UI elements?
  • edited January 2012
    @Dacelbot: Try PhoneGap. Check out the PhoneGap "Get Started Guide".
  • @andregarzia @lemketron Thanks guys! I'll definitely try out PhoneGap/Apache Cordova.
  • @isuhendro -- you can get email notifications if you click on your username at the top of the page, then go into your preferences on the sidebar. That lets you setup what actions send you mail.
  • Paper Mache for Android is an Enyo 1.0 app at this point. Its essentially the same code as the webOS wrapped up in the native PhoneGap app wrapper to target the Android platform instead.

    There were some minor changes to the code to deal with PhoneGap plugins rather than webOS services, and its nolonger a 'nowindow' app. But only a very small amount of code changes from the webOS app, support Android via PhoneGap.
  • I submitted Word Search for iPhone and Intel on Monday. Let's see how long it takes to go thru the review process.

    Doing Periodic Table and Spanish Verbs this weekend.

    The biggest change to occur is removing the cookies and replacing them with localStorage.
  • I've got GVoice "running", but it's problems are going to be pretty annoying to deal with, as i'm getting things that don't happen in Chrome or on webOS, different things on Android and on iOS, that are going to be rather annoying to track down, considering that the iteration time is much longer.
  • SecuStore is in beta now in the Chrome Web Store. Testing on ICS right now and it looks pretty nice. And iOS will follow as soon as my MacBook and iPad come with the mail ;) Btw. if anyone is interested in beta testing you can apply for membership in our beta testing group: https://groups.google.com/group/secustore-beta-testers
  • I was rejected from the Intel store yesterday. My instruction dialog was using a carousel control and displayed the standard apple dots underneath to show how many pages and what your current page is.

    Intel users don't use their fingers, so the concept of 'swipe' is foreign to them. I had to add a 'next' and 'previous' button to the dialog to fix it.
  • Wait, so they rejected your app because it's optimized for touch controls and not for click controls? They know you can just click and drag right? This is ridiculous. Someone from the Enyo team should have a talk with the guys at Intel.
  • Maybe not so ridiculous. Intel's UI guidelines are pretty vague, giving developers a lot of flexibility in how their apps are designed as long as the controls are discoverable and intuitive. In this case, it seems they weren't.

    Extra thought should be put into applications transitioning from touch to click interfaces. Vaslin even said that these are the "standard apple dots," which may be a foreign concept for the Windows folks using the Intel store.

    Assume that app reviewers are experts on what users on their platform expect and are giving you feedback to help you be more successful. Or as I put it, "I reject because I care."

    That said, if any Enyo developer is having a real problem getting an app approved, please let me know. Either start a thread so everyone can all learn from the experience, or email me directly at [email protected]
  • +1 to Lisa's comments. Mouse interactions <> touch interactions. You always need to be careful to look at the primary interaction for a given platform and test, test, test! Just because it's intuitive to you doesn't mean it is for everybody.

    Get your Mom or non-techie next-door neighbor to try it out and see what happens. You'll get different results depending on what they're used to using, but you'll learn a ton about the assumptions people make.

    Here's a good goal for user interface design: written documentation is an admission of failure!
  • written documentation is an admission of failure!
    +1 to that. With one caveat: though it shouldn't be necessary for an ideal app, it's still nice to have it, since users vary so widely.
  • FlashCards got approved for the Intel Store today. But then again, I kinda thought through some of these challenges a bit more. You really have to think through this if you want a touch based app in a Windows environment. I believe I threw up this warning in my post about it :)
  • edited February 2012
    In that case, an earlier post I made becomes important:

    http://forums.enyojs.com/discussion/61/simulate-dragging-in-enyo#Item_1

    I was browsing apps on the Chrome Web Store and one of them does scrolling through a (horizontal) list by letting the user hover the mouse cursor at the end and the list scrolls itself. This isn't hard to do for a regular scroller, but it's not straightforward for VirtaulList/ScrollingLists in Enyo 1.x, since you can't adjust the scroll positions (accomplished by changing the -webkit-transform property) without encountering whitespace that would have to be filled in through paging methods in the list and its components. Having "hover scrolling" or scrolling through buttons would be MUCH easier if dragging on the list could be simulated.

    Hopefully lists in Enyo 2.0 will have a scrollbar...
  • I've read through the scrolling code that is currently in place in 2.0, and it seems like it will attempt to use a system scrolling method, such as scrollbars, if the system supports such a thing, otherwise it will fall back to whatever ends up being implemented in Enyo, I guess.

    I was digging through it trying to see if there was something I could cop out of it that would allow Enyo 1.0 apps to not choke in PhoneGap when you flick-scroll. Regular scrolling works just fine, but as soon as your finger leaves the display, PhoneGap chokes on it. After noticing that it was actually flick-scrolling that created the problem and not just any scrolling, I checked it out in webOS, and although the problem is much much harder to spot, flick scrolling in webOS is at least somewhat slower than drag scrolling.
  • Is it a ScrollingList kind? If VirtualList, switch to ScrollingList and set a rowsPerPage: 20 or so when you declare the list kind. Try playing around with the value. At least on webOS phones, 20 gives you a decent scrolling experience while keeping load time acceptable.
  • nah, I mostly use VirtualRepeater, I have never been able to get List to work right for me. On Android, the PhoneGap blows out a "Waiting for webCore to catch up!" warning and dies for at least a full second or so, whenever I flick scroll anything in Enyo, even a simple scroller with a HtmlContent. Once I saw on the iPad 2, that it was definitely flick scrolling, and not regular scrolling (you can scroll several pages, if you keep a finger in the area) that caused the problem, i realized that the problem is in a whole different area than what i've been thinking all this time.
  • edited February 2012
    Maybe you can try this then:

    VirtualRepeaters are much simpler than VirtualLists. VirtualLists have a whole lot of complicated functionality to handle selectively loading rows when scrolling, where VirtualRepeaters simply render the rows on the screen. It's why you need a scroller container for a VirtualRepeater, but not for a VirtualList.

    I'm assuming you already have your VirtualRepeater contained in a Scroller. For platforms where the scroll performance is not what you like, do:
    this.$.scroller.setVertical(false)
    this.$.scroller.setAutoVertical(false);
    var innerClient = this.$.scroller.node.firstChild.firstChild;
    innerClient.style.overflow = "scroll";
    innerClient.style.height = "100%";
    I haven't tried this since I don't have an Android or iOS device to test, but in Chrome this basically eliminates the normal scrolling behavior for the scroller (you may need to do setHorizontal/setAutoHorizontal if you don't already disable horizontal scrolling), and adds scrollbars to the scroller so that you can scroll using the mouse or scrollbars. I'm guessing that eliminating the normal scroll behavior for the scroller and allowing the system to scroll the element will greatly improve performance.

    I get the feeling that the Enyo team only made sure that they had good scrolling performance on the Touchpad and stopped there, since anecdotal evidence shows that it only has good scrolling performance on the Touchpad (and on Chrome which usually runs on computers that are way faster than mobile devices anyway).

    P.S. I'd still like for someone (preferably from the Enyo team) to comment on the topic I posted about simulating dragging in Enyo.
  • P.P.S. I don't need help with simulating dragging anymore in Enyo. This was the last piece of the puzzle I needed, so now my app is much better adapted to a mouse-based interface as opposed to a touch-based interface.
  • Personally, I appreciated Intel rejecting my app. It's better to fix a lack of intuitivy, then to explain it in the next 250 emails.
  • Super Ads XL is available available for the TouchPad here: http://bit.ly/superadsXLwebOS and with only 2 lines of code changed and an index file is available in the chrome app store here: http://bit.ly/superadsXLchrome

    We are working on porting to more platforms shortly. You can view the demo & FAQ at: http://aclassapps.com/apps/superadsXL

    We will keep this post updated as we expand our apps to other platforms - The Enyo Team Rocks!
  • Super Ads XL is available available for the Playbook here: http://bit.ly/superadsXLplaybook.

    We have also just launched out Super Ads XL cross-platform website - http://SuperAdsXL.com - Feedback welcome!
  • @webOSDealer, just queued up a post to highlight SuperAds XL on the new Enyo blog sometime soon! Nice YouTube video.
  • GVoice is available on webOS, Android, and PlayBook now. All reviews on PlayBook consist of people complaining about the price, and it's speed. :-S No reviews on Android yet :|
Sign In or Register to comment.