<story><title>I made an iPhone game with PhoneGap and won&apos;t do it again</title><url>https://bokstuff.com/i-made-an-iphone-game-with-phonegap-and-ill-never-do-it-again/</url></story><parent_chain><item><author>dheera</author><text>I&amp;#x27;ve tried PhoneGap and Cordova wih Polymer and my biggest gripe is that even the most &lt;i&gt;basic&lt;/i&gt; of mobile UI gestures have no good analogue. For example to emulate swiping between tabs on a ViewPager, you have to implement hundreds of dirty lines of code in JavaScript to catch touch events and decide how they should behave, and hope you emulate the native experience. None of the tabbed interfaces of any of these frameworks have it built-in.&lt;p&gt;Then you inevitably have to deal with Safari&amp;#x27;s stupid rubber-band scrolling, which causes the &lt;i&gt;titlebar&lt;/i&gt; of your app to scroll if dragged. Then when you disable that scrolling you&amp;#x27;re forced to implement your own scrollbar from scratch and emulate the Safari rubber band on the parts you actually want to scroll.&lt;p&gt;Pull-to-refresh? Good luck implementing it in a way that feels like a native app.&lt;p&gt;Building all that in JavaScript is possible, and with the help of CSS3 and WebGL it&amp;#x27;s often possible to get FPS on par with native apps, but emulating a native-feel UI in JavaScript is &lt;i&gt;more&lt;/i&gt; work than just developing twice for Android and iOS. And you usually end up with so much JavaScript bloat and DOM hell that it takes forever to load on 3G or slower connections.&lt;p&gt;Seriously, can someone just give us &amp;lt;GridViewPager&amp;gt;..&amp;lt;&amp;#x2F;GridViewPager&amp;gt;, &amp;lt;ViewPager&amp;gt;..&amp;lt;&amp;#x2F;ViewPager&amp;gt;, &amp;lt;ListView&amp;gt;..&amp;lt;&amp;#x2F;ListView&amp;gt; or something like that, with everything included, including touch gestures, and make it &amp;quot;feel&amp;quot; exactly like iOS or Android depending on the OS it is loaded on, matching the respective fonts, elasticity coefficients, gesture thresholds, and everything else, no questions asked?</text></item></parent_chain><comment><author>throwmenow_0140</author><text>I&amp;#x27;m currently using NativeScript and react-native for app development and I have to comment because items like &amp;lt;ListView&amp;gt; [1] and Grid-Layouts [2] can be done using both technologies which use native rendering and achieve 60 FPS.
They both have listeners for common UI gestures. If you&amp;#x27;re building a normal app (no video game) with some forms, list views and maybe some diagrams, just use those. They give you a native experience and you don&amp;#x27;t have to build it for each platform - we&amp;#x27;re currently not in the state of &amp;quot;write once, run everywhere&amp;quot;, but we&amp;#x27;re close.
It&amp;#x27;s really easy to get started, please read about those if you&amp;#x27;re not satisfied with the current level of Cordova and Web apps.&lt;p&gt;I used Framework7 for a PWA (Progressive Web App) and it has a very lean learning curve if you already know web stuff and it was very easy to integrate e.g. Chartjs, so if you don&amp;#x27;t like react or NativeScript&amp;#x27;s XML you can also use HTML and plain Javascript, although the iOS 10 change is a bit troubling. I don&amp;#x27;t have any problems like a scrolling titlebar with it. Try and see if it fits your use case.&lt;p&gt;[1]: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;facebook.github.io&amp;#x2F;react-native&amp;#x2F;docs&amp;#x2F;listview.html&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;facebook.github.io&amp;#x2F;react-native&amp;#x2F;docs&amp;#x2F;listview.html&lt;/a&gt;
[2]: &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;docs.nativescript.org&amp;#x2F;cookbook&amp;#x2F;ui&amp;#x2F;layouts&amp;#x2F;grid-layout&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;docs.nativescript.org&amp;#x2F;cookbook&amp;#x2F;ui&amp;#x2F;layouts&amp;#x2F;grid-layou...&lt;/a&gt;</text></comment>
<story><title>I made an iPhone game with PhoneGap and won&apos;t do it again</title><url>https://bokstuff.com/i-made-an-iphone-game-with-phonegap-and-ill-never-do-it-again/</url></story><parent_chain><item><author>dheera</author><text>I&amp;#x27;ve tried PhoneGap and Cordova wih Polymer and my biggest gripe is that even the most &lt;i&gt;basic&lt;/i&gt; of mobile UI gestures have no good analogue. For example to emulate swiping between tabs on a ViewPager, you have to implement hundreds of dirty lines of code in JavaScript to catch touch events and decide how they should behave, and hope you emulate the native experience. None of the tabbed interfaces of any of these frameworks have it built-in.&lt;p&gt;Then you inevitably have to deal with Safari&amp;#x27;s stupid rubber-band scrolling, which causes the &lt;i&gt;titlebar&lt;/i&gt; of your app to scroll if dragged. Then when you disable that scrolling you&amp;#x27;re forced to implement your own scrollbar from scratch and emulate the Safari rubber band on the parts you actually want to scroll.&lt;p&gt;Pull-to-refresh? Good luck implementing it in a way that feels like a native app.&lt;p&gt;Building all that in JavaScript is possible, and with the help of CSS3 and WebGL it&amp;#x27;s often possible to get FPS on par with native apps, but emulating a native-feel UI in JavaScript is &lt;i&gt;more&lt;/i&gt; work than just developing twice for Android and iOS. And you usually end up with so much JavaScript bloat and DOM hell that it takes forever to load on 3G or slower connections.&lt;p&gt;Seriously, can someone just give us &amp;lt;GridViewPager&amp;gt;..&amp;lt;&amp;#x2F;GridViewPager&amp;gt;, &amp;lt;ViewPager&amp;gt;..&amp;lt;&amp;#x2F;ViewPager&amp;gt;, &amp;lt;ListView&amp;gt;..&amp;lt;&amp;#x2F;ListView&amp;gt; or something like that, with everything included, including touch gestures, and make it &amp;quot;feel&amp;quot; exactly like iOS or Android depending on the OS it is loaded on, matching the respective fonts, elasticity coefficients, gesture thresholds, and everything else, no questions asked?</text></item></parent_chain><comment><author>youdounderstand</author><text>You&amp;#x27;re never going to get smooth scrolling if you need to hit the UI thread for every touch event. The platform UI frameworks use background threads for scrolling, directly in the OS compositor.</text></comment>