SlideShare une entreprise Scribd logo
1  sur  173
Y! Local mobile case study
    Gonzalo Cordero
       @goonieiam
AGENDA


• Intro, demo   & design principles

• Deconstruction    of a hybrid application

• Conclusion
VS
WHEN TO USE NATIVE
WHEN TO USE NATIVE

• Anything   that needs to access the device’s hardware
WHEN TO USE NATIVE

• Anything   that needs to access the device’s hardware

• You   can put it on the app store
WHEN TO USE NATIVE

• Anything       that needs to access the device’s hardware

• You   can put it on the app store

• That’s   it*
WHEN TO USE NATIVE

 • Anything       that needs to access the device’s hardware

 • You   can put it on the app store

 • That’s   it*




*We’ll cover a few gotchas later in the presentation
FOR EVERYTHING ELSE
FOR EVERYTHING ELSE
• You   are familiar with the technologies
FOR EVERYTHING ELSE
• You   are familiar with the technologies

• Write   once and use everywhere
FOR EVERYTHING ELSE
• You   are familiar with the technologies

• Write   once and use everywhere

• You   decide when/how to update
Hybrid - Best of both
       worlds?
*NATIVE


We ended up using it more than we
            wanted
WHY?
WHY?


• Paying   that beginners price?
WHY?


• Paying   that beginners price?

• Some “web” features    not reliable enough
WHY?


• Paying   that beginners price?

• Some “web” features    not reliable enough

• Some “web” features    were not available at the time
NATIVE*
NATIVE*

Geo
NATIVE*

       Geo


Navigation Controls
NATIVE*

       Geo


Navigation Controls



     Storage
WEB
WEB

All content
WEB

  All content




All interactions
YUI3 MOBILE EXAMPLE
YUI3 MOBILE EXAMPLE
pulldown event
YUI3 MOBILE EXAMPLE
pulldown event   ScrollView module
YUI3 MOBILE EXAMPLE
pulldown event   ScrollView module   touch-events + CSS3
TECHNOLOGIES
TECHNOLOGIES
TECHNOLOGIES
TECHNOLOGIES
TECHNOLOGIES
TECHNOLOGIES



               ????
“There is no mobile web,
just the web” - Stephen Hay
YUI().USE(“ALL”)
      “Use”
One           statement to rule them all
YUI.USE(“...”)
YUI.USE(“...”)


Loader
YUI.USE(“...”)


Loader
Events
YUI.USE(“...”)


    Loader
     Events
Y.Lang.Substitute
YUI.USE(“...”)


    Loader             Transitions

     Events
Y.Lang.Substitute
YUI.USE(“...”)


    Loader              Transitions

     Events           App Framework

Y.Lang.Substitute
1. Load & Delivery
App delivery through
      app store
Pack light or pack
   for a month?
WHAT TO PACK, WHAT TO
            PACK


• Base   core files(including YUI)

• Anything   that doesn’t change frequently or is static
Load the data pieces
      on demand
YUI().USE(“LOADER”)
YUI().USE(“LOADER”)
   Feature based loading
YUI().USE(“LOADER”)
   Feature based loading


   Dependency calculation
YUI().USE(“LOADER”)
   Feature based loading


   Dependency calculation


   On demand loading
YUI().USE(“LOADER”)
   Feature based loading


   Dependency calculation


   On demand loading


   Manual or Automatic
CACHING THE ASSETS


• We  cached all the assets once we downloaded the
 first time

• Using   native storage
How about HTML5
   Manifest?
Probably but...
HTML5 MANIFEST
HTML5 MANIFEST

• At
   the time we saw some inconsistencies with
 how the data persisted in memory
HTML5 MANIFEST

• At
   the time we saw some inconsistencies with
 how the data persisted in memory

• Flushing   the cache wasn’t reliable either
CACHING THE DATA
CACHING THE DATA


      JSON
CACHING THE DATA


       JSON

  Y.Lang.Substitute
CACHING THE DATA


       JSON

  Y.Lang.Substitute
2. Navigating around
NAVIGATION CONTROLS
NAVIGATION CONTROLS


• All   the navigation is done natively
NAVIGATION CONTROLS


• All   the navigation is done natively

• Logic   & visual aspects not available at the time
NAVIGATION CONTROLS


• All   the navigation is done natively

• Logic   & visual aspects not available at the time

• Some     major drawbacks
NAVIGATION
NAVIGATION

      position: fixed wasn’t
       working properly
           at the time.
NAVIGATION

        position: fixed wasn’t
         working properly
             at the time.




     Navigation logic was easier
       to implement natively
NATIVE NAVIGATION
NATIVE NAVIGATION
1. Load the view
NATIVE NAVIGATION
1. Load the view
NATIVE NAVIGATION
1. Load the view
NATIVE NAVIGATION
1. Load the view

2. While loading, disable
navigation controls
NATIVE NAVIGATION
1. Load the view

2. While loading, disable
navigation controls
NATIVE NAVIGATION
1. Load the view

2. While loading, disable
navigation controls
3. Send articles information
to native
NATIVE NAVIGATION
1. Load the view

2. While loading, disable
navigation controls
3. Send articles information
to native
NATIVE NAVIGATION
NATIVE NAVIGATION


• Loading   more data than we needed
NATIVE NAVIGATION


• Loading   more data than we needed

• Race   conditions
NATIVE NAVIGATION


• Loading   more data than we needed

• Race   conditions

• Several   bridge calls
If I were to build it
      today...
A BETTER SOLUTION

Transitions   App Framework
YUI().USE(“APP”)
            route
YUI().USE(“APP”)
              route




       Home
YUI().USE(“APP”)
              route




              Saved
       Home
              Items
YUI().USE(“APP”)
              route




              Saved
       Home           Settings
              Items
YUI().USE(“TRANSITION”)
YUI().USE(“TRANSITION”)
YUI().USE(“TRANSITION”)

Y.one('#homeView').transition({
    width: {
        duration: 0.5,
        easing: 'ease-out',
        value: 0
    }
}, function() {
    showNextView();
});
YUI().USE(“TRANSITION”)

Y.one('#homeView').transition({
    width: {
        duration: 0.5,
        easing: 'ease-out',
        value: 0
    }
}, function() {
    showNextView();
});
BENEFITS

• Logic   and content from the same stack

• No   race conditions between native + web

• Reusability   & maintainability
3. Reacting to gestures
YUI().USE(“GESTURES”)
YUI.USE(“EVENT-FLICK”)

movieCarousel.on("flick", onMovieFlick, {
// only notify me if the flick covered
// more than 20px and was faster than 0.8px/ms
    minDistance:20,
    minVelocity:0.8,
    axis : “x”
});

function onMovieFlick (e) {
   //Go to the next movie
}
YUI().USE(“EVENT-MOVE”)



• Itprovides a set of synthetic events to detect
  gestures

• gesturemovestart, gesturemove, gesturemoveend.
movieCarousel.delegate("gesturemovestart", function(e) {

    var item = e.currentTarget,
        swipeEnd,
        isSwipeLeft,
        swipeStart;

    item.setData("swipeStart", e.pageX);
    item.once("gesturemoveend", function(e) {

        swipeStart = item.getData("swipeStart");
        swipeEnd = e.pageX;
        isSwipeLeft = (swipeStart - swipeEnd) >
MIN_SWIPE;

          if (isSwipeLeft) {
              //Go to the previous movie
          } else {
             //Go to the next movie
          }
    });
YUI().USE(“SCROLLVIEW”)
YUI().USE(“SCROLLVIEW”)
YUI().USE(“SCROLLVIEW”)



• Provides   scrollable content for touch enabled devices.

• Two   plugins: ScrollViewScrollbars & ScrollViewPaginator
HOW TO?

        <ul id=”movies”>
            <li>
                 <img src=”movie.jpeg”
alt=”somemovie”>
            </li>
        </ul>
YUI({...}).use("scrollview", function(Y){

 var scrollview = new Y.ScrollView({
         srcNode:"#movies",
         flick : {minVelocity:0.8},
         deceleration : 0.98,
         bounce: 0.1,
         width:"20em"
 });

});
4. Offline & save modes
OFFLINE


• Two distinctions: Offline mode & Save articles to
 read later

• In   both cases we are using native storage
OFFLINE MODE
Used to display the most recent data in case
             of no connectivity
OFFLINE MODE
Used to display the most recent data in case
             of no connectivity

             Data(native storage)
OFFLINE MODE
Used to display the most recent data in case
             of no connectivity

             Data(native storage)
OFFLINE MODE
Used to display the most recent data in case
             of no connectivity

             Data(native storage)




             Y.Lang.Substitute (for
                  templating)
OFFLINE MODE
Used to display the most recent data in case
             of no connectivity

              Data from Local
             Data(native storage)
                   storage




             Y.Lang.Substitute (for
                  templating)
OFFLINE(SAVE)
OFFLINE(SAVE)

Core files(Already cached)
OFFLINE(SAVE)

Core files(Already cached)


      Content
OFFLINE(SAVE)

       Core files(Already cached)


             Content

HTML
OFFLINE(SAVE)

       Core files(Already cached)


             Content

HTML    CSS
OFFLINE(SAVE)

       Core files(Already cached)


             Content

HTML    CSS            JS
OFFLINE(SAVE)

       Core files(Already cached)


             Content

HTML    CSS            JS          Media
SO...


• Ifyou need to store big files + media: Use
  native storage

• Otherwise   store JSON in localStorage & use
  templates
5. The bridge
THE BRIDGE


Two way communication between Native & Web
NATIVE->WEB
NATIVE->WEB
NATIVE->WEB
NATIVE->WEB
NATIVE -> WEB


• Call   directly into JS

• Using Y.Env    to expose global method

• Use Y.applyTo    to call into specific function
WEB -> NATIVE



• By   navigating to a local host/protocol

• You   can use : window.location or XHR
WINDOW.LOCATION
WINDOW.LOCATION
On your JS:

 window.location = myProtocol://performAction?param=foo
WINDOW.LOCATION
On your JS:

 window.location = myProtocol://performAction?param=foo

On your native code:

if([[request.URL scheme] isEqualToString:@"myProtocol"])
{
  //Parse the request, perform an action
}
else {
   return TRUE; //Navigate
}
XHR


• Cross   domain policies restrictions

• Works    if the content is loaded locally

• Can   send a response back
General best practices
var true = TRUE;

Everything you’ve learned
      still applies
- Keep your JS small
- Keep your JS small
- Don’t touch the DOM. Keep it
Small
- Keep your JS small
- Don’t touch the DOM. Keep it
Small
- Every byte counts as “double” in
mobile
Reduce your http requests:
Reduce your http requests:
- Pre-pack as much as you can.
Reduce your http requests:
- Pre-pack as much as you can.
- Use data URI for small images.
Reduce your http requests:
- Pre-pack as much as you can.
- Use data URI for small images.
- Use cached templates to load similar
views.
Perceived performance:
Give constant UI feedback
Shrink your images
Take advantage of the
       shinny:
Take advantage of the
       shinny:
- Imageless designs(CSS3)
Take advantage of the
       shinny:
- Imageless designs(CSS3)
- Hardware acceleration (don’t abuse
it)
Take advantage of the
       shinny:
- Imageless designs(CSS3)
- Hardware acceleration (don’t abuse
it)
- Use new semantic HTML5 elements
One more thing...
Got a cool idea? Build it!

http://yuilibrary.com/gallery/
FINAL THOUGHTS



• YUI3is well suited for both Hybrid and
 Mobile web apps.

• Everything   you need is already available
YUI.USE(“RESOURCES”)


• http://davidbcalhoun.com/2011/mobile-performance-manifesto

• http://www.yuiblog.com/blog/2011/01/17/video-yuiconf2010-
 desai/

• http://www.slideshare.net/nzakas/mobile-web-speed-bumps
YUI().USE(“THANK YOU”)

          @goonieiam


        http://yuilibrary.com
    http://yuilibrary.com/theater/

Contenu connexe

Similaire à Creating Hybrid mobile apps with YUI

iPhone Appleless Apps
iPhone Appleless AppsiPhone Appleless Apps
iPhone Appleless AppsRemy Sharp
 
The Inclusive Web: hands-on with HTML5 and jQuery
The Inclusive Web: hands-on with HTML5 and jQueryThe Inclusive Web: hands-on with HTML5 and jQuery
The Inclusive Web: hands-on with HTML5 and jQuerycolinbdclark
 
Fake it 'til you make it
Fake it 'til you make itFake it 'til you make it
Fake it 'til you make itJonathan Snook
 
Advanced #6 clean architecture
Advanced #6  clean architectureAdvanced #6  clean architecture
Advanced #6 clean architectureVitali Pekelis
 
Django Deployment with Fabric
Django Deployment with FabricDjango Deployment with Fabric
Django Deployment with FabricJonas Nockert
 
HTML5 on Mobile
HTML5 on MobileHTML5 on Mobile
HTML5 on MobileAdam Lu
 
Hosting Your Own OTA Update Service
Hosting Your Own OTA Update ServiceHosting Your Own OTA Update Service
Hosting Your Own OTA Update ServiceQuinlan Jung
 
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsSymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsPablo Godel
 
Developing Mobile HTML5 Apps with Grails
Developing Mobile HTML5 Apps with GrailsDeveloping Mobile HTML5 Apps with Grails
Developing Mobile HTML5 Apps with GrailsGR8Conf
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java binOlve Hansen
 
Solving Problems with YUI3: AutoComplete
Solving Problems with YUI3: AutoCompleteSolving Problems with YUI3: AutoComplete
Solving Problems with YUI3: AutoCompleteIsaacSchlueter
 
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...Esri Nederland
 
Dcjq node.js presentation
Dcjq node.js presentationDcjq node.js presentation
Dcjq node.js presentationasync_io
 
Palm Developer Day PhoneGap
Palm Developer Day PhoneGap Palm Developer Day PhoneGap
Palm Developer Day PhoneGap Brian LeRoux
 
From YUI3 to K2
From YUI3 to K2From YUI3 to K2
From YUI3 to K2kaven yan
 

Similaire à Creating Hybrid mobile apps with YUI (20)

iPhone Appleless Apps
iPhone Appleless AppsiPhone Appleless Apps
iPhone Appleless Apps
 
The Inclusive Web: hands-on with HTML5 and jQuery
The Inclusive Web: hands-on with HTML5 and jQueryThe Inclusive Web: hands-on with HTML5 and jQuery
The Inclusive Web: hands-on with HTML5 and jQuery
 
HTML5와 모바일
HTML5와 모바일HTML5와 모바일
HTML5와 모바일
 
Fake it 'til you make it
Fake it 'til you make itFake it 'til you make it
Fake it 'til you make it
 
Txjs
TxjsTxjs
Txjs
 
Advanced #6 clean architecture
Advanced #6  clean architectureAdvanced #6  clean architecture
Advanced #6 clean architecture
 
Django Deployment with Fabric
Django Deployment with FabricDjango Deployment with Fabric
Django Deployment with Fabric
 
HTML5 on Mobile
HTML5 on MobileHTML5 on Mobile
HTML5 on Mobile
 
Hosting Your Own OTA Update Service
Hosting Your Own OTA Update ServiceHosting Your Own OTA Update Service
Hosting Your Own OTA Update Service
 
Titanium Alloy Tutorial
Titanium Alloy TutorialTitanium Alloy Tutorial
Titanium Alloy Tutorial
 
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsSymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
 
Web app
Web appWeb app
Web app
 
Web app
Web appWeb app
Web app
 
Developing Mobile HTML5 Apps with Grails
Developing Mobile HTML5 Apps with GrailsDeveloping Mobile HTML5 Apps with Grails
Developing Mobile HTML5 Apps with Grails
 
Docker presentasjon java bin
Docker presentasjon java binDocker presentasjon java bin
Docker presentasjon java bin
 
Solving Problems with YUI3: AutoComplete
Solving Problems with YUI3: AutoCompleteSolving Problems with YUI3: AutoComplete
Solving Problems with YUI3: AutoComplete
 
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
Building mobile apps with the ArcGIS api for Javascript, Esri, Andy Gup and A...
 
Dcjq node.js presentation
Dcjq node.js presentationDcjq node.js presentation
Dcjq node.js presentation
 
Palm Developer Day PhoneGap
Palm Developer Day PhoneGap Palm Developer Day PhoneGap
Palm Developer Day PhoneGap
 
From YUI3 to K2
From YUI3 to K2From YUI3 to K2
From YUI3 to K2
 

Dernier

Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 

Dernier (20)

Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

Creating Hybrid mobile apps with YUI

Notes de l'éditeur

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n
  84. \n
  85. \n
  86. \n
  87. \n
  88. \n
  89. \n
  90. \n
  91. \n
  92. \n
  93. \n
  94. \n
  95. \n
  96. \n
  97. \n
  98. \n
  99. \n
  100. \n
  101. \n
  102. \n
  103. \n
  104. \n
  105. \n
  106. \n
  107. \n
  108. \n
  109. \n
  110. \n
  111. \n
  112. \n
  113. \n
  114. \n
  115. \n
  116. \n
  117. \n
  118. \n
  119. \n
  120. \n
  121. \n
  122. \n
  123. \n
  124. \n
  125. \n
  126. \n
  127. \n
  128. \n
  129. \n
  130. \n
  131. \n
  132. \n
  133. \n
  134. \n
  135. \n
  136. \n
  137. \n
  138. \n
  139. \n
  140. \n
  141. \n
  142. \n
  143. \n
  144. \n
  145. \n