CINXE.COM
greenrobot Open Source Libraries - Open Source by greenrobot
<!DOCTYPE html> <html lang="en-US"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=10" /> <link rel="profile" href="http://gmpg.org/xfn/11" /> <link rel="pingback" href="https://greenrobot.org/wordpress/xmlrpc.php" /> <script type="text/javascript">function theChampLoadEvent(e){var t=window.onload;if(typeof window.onload!="function"){window.onload=e}else{window.onload=function(){t();e()}}}</script> <script type="text/javascript">var theChampDefaultLang = 'en_US', theChampCloseIconPath = 'https://greenrobot.org/wordpress/wp-content/plugins/super-socializer/images/close.png';</script> <script>var theChampSiteUrl = 'https://greenrobot.org', theChampVerified = 0, theChampEmailPopup = 0, heateorSsMoreSharePopupSearchText = 'Search';</script> <script> var theChampFBKey = '', theChampFBLang = 'en_US', theChampFbLikeMycred = 0, theChampSsga = 0, theChampCommentNotification = 0, theChampHeateorFcmRecentComments = 0, theChampFbIosLogin = 0; </script> <script type="text/javascript">var theChampFBCommentUrl = 'https://greenrobot.org/'; var theChampFBCommentColor = 'light'; var theChampFBCommentNumPosts = ''; var theChampFBCommentWidth = '100%'; var theChampFBCommentOrderby = 'social'; var theChampCommentingTabs = "wordpress,facebook,disqus", theChampGpCommentsUrl = 'https://greenrobot.org/', theChampDisqusShortname = '', theChampScEnabledTabs = 'wordpress,fb', theChampScLabel = 'Leave a reply', theChampScTabLabels = {"wordpress":"Default Comments (0)","fb":"Facebook Comments","disqus":"Disqus Comments"}, theChampGpCommentsWidth = 0, theChampCommentingId = 'respond'</script> <script> var theChampSharingAjaxUrl = 'https://greenrobot.org/wordpress/wp-admin/admin-ajax.php', heateorSsFbMessengerAPI = 'https://www.facebook.com/dialog/send?app_id=595489497242932&display=popup&link=%encoded_post_url%&redirect_uri=%encoded_post_url%',heateorSsWhatsappShareAPI = 'web', heateorSsUrlCountFetched = [], heateorSsSharesText = 'Shares', heateorSsShareText = 'Share', theChampPluginIconPath = 'https://greenrobot.org/wordpress/wp-content/plugins/super-socializer/images/logo.png', theChampSaveSharesLocally = 0, theChampHorizontalSharingCountEnable = 1, theChampVerticalSharingCountEnable = 0, theChampSharingOffset = -10, theChampCounterOffset = -10, theChampMobileStickySharingEnabled = 0, heateorSsCopyLinkMessage = "Link copied."; var heateorSsHorSharingShortUrl = "https://greenrobot.org/";var heateorSsVerticalSharingShortUrl = "https://greenrobot.org/"; </script> <style type="text/css"> .the_champ_button_instagram span.the_champ_svg,a.the_champ_instagram span.the_champ_svg{background:radial-gradient(circle at 30% 107%,#fdf497 0,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%)} .the_champ_horizontal_sharing .the_champ_svg,.heateor_ss_standard_follow_icons_container .the_champ_svg{ background-color:#7fcd55!important;background:#7fcd55!important; color: #fff; border-width: 0px; border-style: solid; border-color: transparent; } .the_champ_horizontal_sharing .theChampTCBackground{ color:#666; } .the_champ_horizontal_sharing span.the_champ_svg:hover,.heateor_ss_standard_follow_icons_container span.the_champ_svg:hover{ background-color:#5fad35!important;background:#5fad35; border-color: transparent; } .the_champ_vertical_sharing span.the_champ_svg,.heateor_ss_floating_follow_icons_container span.the_champ_svg{ color: #fff; border-width: 0px; border-style: solid; border-color: transparent; } .the_champ_vertical_sharing .theChampTCBackground{ color:#666; } .the_champ_vertical_sharing span.the_champ_svg:hover,.heateor_ss_floating_follow_icons_container span.the_champ_svg:hover{ border-color: transparent; } div.the_champ_horizontal_sharing .the_champ_square_count{display: block} @media screen and (max-width:783px){.the_champ_vertical_sharing{display:none!important}}</style> <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> <!-- This site is optimized with the Yoast SEO plugin v19.7.1 - https://yoast.com/wordpress/plugins/seo/ --> <title>greenrobot Open Source Libraries - Open Source by greenrobot</title> <meta name="description" content="Performance-optimized open source libraries that run on billions of mobile devices. Most popular: greenDAO, EventBus, and essentials." /> <link rel="canonical" href="https://greenrobot.org/" /> <meta property="og:locale" content="en_US" /> <meta property="og:type" content="website" /> <meta property="og:title" content="greenrobot Open Source Libraries - Open Source by greenrobot" /> <meta property="og:description" content="Performance-optimized open source libraries that run on billions of mobile devices. Most popular: greenDAO, EventBus, and essentials." /> <meta property="og:url" content="https://greenrobot.org/" /> <meta property="og:site_name" content="Open Source by greenrobot" /> <meta property="article:modified_time" content="2022-03-15T08:46:19+00:00" /> <meta name="twitter:card" content="summary" /> <meta name="twitter:label1" content="Est. reading time" /> <meta name="twitter:data1" content="1 minute" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://greenrobot.org/","url":"https://greenrobot.org/","name":"greenrobot Open Source Libraries - Open Source by greenrobot","isPartOf":{"@id":"https://greenrobot.org/#website"},"datePublished":"2016-05-15T18:35:35+00:00","dateModified":"2022-03-15T08:46:19+00:00","description":"Performance-optimized open source libraries that run on billions of mobile devices. Most popular: greenDAO, EventBus, and essentials.","breadcrumb":{"@id":"https://greenrobot.org/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://greenrobot.org/"]}]},{"@type":"BreadcrumbList","@id":"https://greenrobot.org/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home"}]},{"@type":"WebSite","@id":"https://greenrobot.org/#website","url":"https://greenrobot.org/","name":"Open Source by greenrobot","description":"EventBus, greenDAO, and greenrobot Essentials: Open Source by Heart.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://greenrobot.org/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"}]}</script> <!-- / Yoast SEO plugin. --> <link rel='dns-prefetch' href='//accounts.google.com' /> <link rel='dns-prefetch' href='//apis.google.com' /> <link rel='dns-prefetch' href='//s.w.org' /> <link rel="alternate" type="application/rss+xml" title="Open Source by greenrobot » Feed" href="https://greenrobot.org/feed/" /> <link rel="alternate" type="application/rss+xml" title="Open Source by greenrobot » Comments Feed" href="https://greenrobot.org/comments/feed/" /> <!-- This site uses the Google Analytics by MonsterInsights plugin v9.3.0 - Using Analytics tracking - https://www.monsterinsights.com/ --> <!-- Note: MonsterInsights is not currently configured on this site. The site owner needs to authenticate with Google Analytics in the MonsterInsights settings panel. --> <!-- No tracking code set --> <!-- / Google Analytics by MonsterInsights --> <script type="text/javascript"> window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/14.0.0\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/14.0.0\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/greenrobot.org\/wordpress\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.0.9"}}; /*! This file is auto-generated */ !function(e,a,t){var n,r,o,i=a.createElement("canvas"),p=i.getContext&&i.getContext("2d");function s(e,t){var a=String.fromCharCode,e=(p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,e),0,0),i.toDataURL());return p.clearRect(0,0,i.width,i.height),p.fillText(a.apply(this,t),0,0),e===i.toDataURL()}function c(e){var t=a.createElement("script");t.src=e,t.defer=t.type="text/javascript",a.getElementsByTagName("head")[0].appendChild(t)}for(o=Array("flag","emoji"),t.supports={everything:!0,everythingExceptFlag:!0},r=0;r<o.length;r++)t.supports[o[r]]=function(e){if(!p||!p.fillText)return!1;switch(p.textBaseline="top",p.font="600 32px Arial",e){case"flag":return s([127987,65039,8205,9895,65039],[127987,65039,8203,9895,65039])?!1:!s([55356,56826,55356,56819],[55356,56826,8203,55356,56819])&&!s([55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447],[55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447]);case"emoji":return!s([129777,127995,8205,129778,127999],[129777,127995,8203,129778,127999])}return!1}(o[r]),t.supports.everything=t.supports.everything&&t.supports[o[r]],"flag"!==o[r]&&(t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&t.supports[o[r]]);t.supports.everythingExceptFlag=t.supports.everythingExceptFlag&&!t.supports.flag,t.DOMReady=!1,t.readyCallback=function(){t.DOMReady=!0},t.supports.everything||(n=function(){t.readyCallback()},a.addEventListener?(a.addEventListener("DOMContentLoaded",n,!1),e.addEventListener("load",n,!1)):(e.attachEvent("onload",n),a.attachEvent("onreadystatechange",function(){"complete"===a.readyState&&t.readyCallback()})),(e=t.source||{}).concatemoji?c(e.concatemoji):e.wpemoji&&e.twemoji&&(c(e.twemoji),c(e.wpemoji)))}(window,document,window._wpemojiSettings); </script> <style type="text/css"> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='validate-engine-css-css' href='https://greenrobot.org/wordpress/wp-content/plugins/wysija-newsletters/css/validationEngine.jquery.css?ver=2.22' type='text/css' media='all' /> <link rel='stylesheet' id='wp-block-library-css' href='https://greenrobot.org/wordpress/wp-includes/css/dist/block-library/style.min.css?ver=6.0.9' type='text/css' media='all' /> <style id='global-styles-inline-css' type='text/css'> body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--duotone--dark-grayscale: url('#wp-duotone-dark-grayscale');--wp--preset--duotone--grayscale: url('#wp-duotone-grayscale');--wp--preset--duotone--purple-yellow: url('#wp-duotone-purple-yellow');--wp--preset--duotone--blue-red: url('#wp-duotone-blue-red');--wp--preset--duotone--midnight: url('#wp-duotone-midnight');--wp--preset--duotone--magenta-yellow: url('#wp-duotone-magenta-yellow');--wp--preset--duotone--purple-green: url('#wp-duotone-purple-green');--wp--preset--duotone--blue-orange: url('#wp-duotone-blue-orange');--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} </style> <link rel='stylesheet' id='siteorigin-panels-front-css' href='https://greenrobot.org/wordpress/wp-content/plugins/siteorigin-panels/css/front-flex.min.css?ver=2.25.0' type='text/css' media='all' /> <link rel='stylesheet' id='toc-screen-css' href='https://greenrobot.org/wordpress/wp-content/plugins/table-of-contents-plus/screen.min.css?ver=2302' type='text/css' media='all' /> <link rel='stylesheet' id='tve_leads_forms-css' href='//greenrobot.org/wordpress/wp-content/plugins/thrive-leads/editor-layouts/css/frontend.css?ver=3.20.2' type='text/css' media='all' /> <link rel='stylesheet' id='tve-leads-eight_set-css' href='//greenrobot.org/wordpress/wp-content/plugins/thrive-leads/editor-templates/_form_css/eight_set.css?ver=3.20.2' type='text/css' media='all' /> <link rel='stylesheet' id='tve_style_family_tve_flt-css' href='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/css/thrive_flat.css?ver=3.22.2' type='text/css' media='all' /> <link rel='stylesheet' id='vantage-style-css' href='https://greenrobot.org/wordpress/wp-content/themes/vantage/style.css?ver=2.6' type='text/css' media='all' /> <link rel='stylesheet' id='font-awesome-css' href='https://greenrobot.org/wordpress/wp-content/themes/vantage/fontawesome/css/font-awesome.css?ver=4.6.2' type='text/css' media='all' /> <link rel='stylesheet' id='siteorigin-mobilenav-css' href='https://greenrobot.org/wordpress/wp-content/themes/vantage/inc/mobilenav/css/mobilenav.css?ver=2.6' type='text/css' media='all' /> <link rel='stylesheet' id='the_champ_frontend_css-css' href='https://greenrobot.org/wordpress/wp-content/plugins/super-socializer/css/front.css?ver=7.13.55' type='text/css' media='all' /> <link rel='stylesheet' id='codecolorer-css' href='https://greenrobot.org/wordpress/wp-content/plugins/codecolorer/codecolorer.css?ver=0.10.1' type='text/css' media='screen' /> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-includes/js/jquery/jquery.min.js?ver=3.6.0' id='jquery-core-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.3.2' id='jquery-migrate-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-includes/js/imagesloaded.min.js?ver=4.1.4' id='imagesloaded-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-includes/js/masonry.min.js?ver=4.2.2' id='masonry-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-includes/js/jquery/jquery.masonry.min.js?ver=3.1.2b' id='jquery-masonry-js'></script> <script type='text/javascript' id='tve_frontend-js-extra'> /* <![CDATA[ */ var tve_frontend_options = {"is_editor_page":"","page_events":[],"is_single":"1","ajaxurl":"https:\/\/greenrobot.org\/wordpress\/wp-admin\/admin-ajax.php","social_fb_app_id":"","dash_url":"https:\/\/greenrobot.org\/wordpress\/wp-content\/plugins\/thrive-leads\/thrive-dashboard","translations":{"Copy":"Copy"},"post_id":"832","ip":"8.222.208.146","current_user":[],"post_title":"greenrobot Open Source Libraries","post_type":"page","post_url":"https:\/\/greenrobot.org\/","is_lp":"","post_request_data":[],"conditional_display":{"is_tooltip_dismissed":false}}; /* ]]> */ </script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/general.min.js?ver=3.22.2' id='tve_frontend-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-includes/js/plupload/moxie.min.js?ver=1.3.5' id='moxiejs-js'></script> <!--[if lt IE 9]> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/themes/vantage/js/html5.min.js?ver=3.7.3' id='vantage-html5-js'></script> <![endif]--> <!--[if (gte IE 6)&(lte IE 8)]> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/themes/vantage/js/selectivizr.min.js?ver=1.0.2' id='vantage-selectivizr-js'></script> <![endif]--> <script type='text/javascript' id='siteorigin-mobilenav-js-extra'> /* <![CDATA[ */ var mobileNav = {"search":{"url":"https:\/\/greenrobot.org","placeholder":"Search"},"text":{"navigate":"Menu","back":"Back","close":"Close"},"nextIconUrl":"https:\/\/greenrobot.org\/wordpress\/wp-content\/themes\/vantage\/inc\/mobilenav\/images\/next.png","mobileMenuClose":"<i class=\"fa fa-times\"><\/i>"}; /* ]]> */ </script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/themes/vantage/inc/mobilenav/js/mobilenav.min.js?ver=2.6' id='siteorigin-mobilenav-js'></script> <link rel="https://api.w.org/" href="https://greenrobot.org/wp-json/" /><link rel="alternate" type="application/json" href="https://greenrobot.org/wp-json/wp/v2/pages/832" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://greenrobot.org/wordpress/xmlrpc.php?rsd" /> <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="https://greenrobot.org/wordpress/wp-includes/wlwmanifest.xml" /> <meta name="generator" content="WordPress 6.0.9" /> <link rel='shortlink' href='https://greenrobot.org/' /> <link rel="alternate" type="application/json+oembed" href="https://greenrobot.org/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fgreenrobot.org%2F" /> <link rel="alternate" type="text/xml+oembed" href="https://greenrobot.org/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fgreenrobot.org%2F&format=xml" /> <meta name="viewport" content="width=device-width, initial-scale=1" /><style type="text/css" id="tve_global_variables">:root{--tcb-background-author-image:url(https://secure.gravatar.com/avatar/f5b9dacdc7f63c622a4d6ac2833705b8?s=256&d=mm&r=g);--tcb-background-user-image:url();--tcb-background-featured-image-thumbnail:url(https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/css/images/featured_image.png);}</style> <style type="text/css"> .so-mobilenav-mobile + * { display: none; } @media screen and (max-width: 480px) { .so-mobilenav-mobile + * { display: block; } .so-mobilenav-standard + * { display: none; } } </style> <style type="text/css">.recentcomments a{display:inline !important;padding:0 !important;margin:0 !important;}</style> <style type="text/css" media="screen"> #footer-widgets .widget { width: 100%; } #masthead-widgets .widget { width: 100%; } </style> <style type="text/css" media="all" id="siteorigin-panels-layouts-head">/* Layout 832 */ #pgc-832-0-0 , #pgc-832-2-0 , #pgc-832-3-0 , #pgc-832-4-0 , #pgc-832-5-0 { width:100%;width:calc(100% - ( 0 * 30px ) ) } #pg-832-0 { margin-bottom:20px } #pgc-832-1-0 , #pgc-832-1-1 , #pgc-832-1-2 { width:33.3333%;width:calc(33.3333% - ( 0.666666666667 * 30px ) ) } #pg-832-1 { margin-bottom:40px } #pg-832-2 , #pg-832-3 , #pg-832-4 , #pg-832-5 , #pl-832 .so-panel:last-of-type { margin-bottom:0px } #pl-832 .so-panel { margin-bottom:35px } #pg-832-0> .panel-row-style { background-color:#fcfcfc;padding:0px } #panel-832-0-0-0> .panel-widget-style { background-color:#ffffff;padding:0px } #panel-832-1-0-0> .panel-widget-style { background-color:#7fcd55;color:#ffffff;padding:40px } #panel-832-1-0-0 a , #panel-832-1-1-0 a , #panel-832-1-2-0 a { color:#ffffff } #panel-832-1-1-0> .panel-widget-style { background-color:#0b5152;color:#ffffff;padding:40px } #panel-832-1-2-0> .panel-widget-style { background-color:#0e1a34;color:#ffffff;padding:40px } #pg-832-2> .panel-row-style { background-color:#ffffff;padding:0px;margin-top:70px } #panel-832-2-0-0> .panel-widget-style { padding:0px;margin-top:50px } #pg-832-3> .panel-row-style { background-color:#ffffff;margin-top:-30px } #pg-832-5> .panel-row-style { padding:0px } @media (max-width:780px){ #pg-832-0.panel-no-style, #pg-832-0.panel-has-style > .panel-row-style, #pg-832-0 , #pg-832-1.panel-no-style, #pg-832-1.panel-has-style > .panel-row-style, #pg-832-1 , #pg-832-2.panel-no-style, #pg-832-2.panel-has-style > .panel-row-style, #pg-832-2 , #pg-832-3.panel-no-style, #pg-832-3.panel-has-style > .panel-row-style, #pg-832-3 , #pg-832-4.panel-no-style, #pg-832-4.panel-has-style > .panel-row-style, #pg-832-4 , #pg-832-5.panel-no-style, #pg-832-5.panel-has-style > .panel-row-style, #pg-832-5 { -webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column } #pg-832-0 > .panel-grid-cell , #pg-832-0 > .panel-row-style > .panel-grid-cell , #pg-832-1 > .panel-grid-cell , #pg-832-1 > .panel-row-style > .panel-grid-cell , #pg-832-2 > .panel-grid-cell , #pg-832-2 > .panel-row-style > .panel-grid-cell , #pg-832-3 > .panel-grid-cell , #pg-832-3 > .panel-row-style > .panel-grid-cell , #pg-832-4 > .panel-grid-cell , #pg-832-4 > .panel-row-style > .panel-grid-cell , #pg-832-5 > .panel-grid-cell , #pg-832-5 > .panel-row-style > .panel-grid-cell { width:100%;margin-right:0 } #pgc-832-1-0 , #pgc-832-1-1 { margin-bottom:30px } #pl-832 .panel-grid-cell { padding:0 } #pl-832 .panel-grid .panel-grid-cell-empty { display:none } #pl-832 .panel-grid .panel-grid-cell-mobile-last { margin-bottom:0px } } </style><style type="text/css" id="vantage-footer-widgets">#footer-widgets aside { width : 100%; } </style> <style type="text/css" id="customizer-css">#masthead .hgroup h1, #masthead.masthead-logo-in-menu .logo > h1 { font-size: 0px } #page-title, article.post .entry-header h1.entry-title, article.page .entry-header h1.entry-title { font-size: 32px } .entry-content { font-size: 16px } .entry-content a, .entry-content a:visited, #secondary a, #secondary a:visited, #masthead .hgroup a, #masthead .hgroup a:visited, .comment-form .logged-in-as a, .comment-form .logged-in-as a:visited { color: #5fad35 } .main-navigation ul li:hover > a, #search-icon #search-icon-icon:hover { background-color: #81d742 } .main-navigation ul ul li:hover > a { background-color: #81d742 } #header-sidebar .widget_nav_menu ul.menu > li > ul.sub-menu { border-top-color: #81d742 } a.button, button, html input[type="button"], input[type="reset"], input[type="submit"], .post-navigation a, #image-navigation a, article.post .more-link, article.page .more-link, .paging-navigation a, .woocommerce #page-wrapper .button, .woocommerce a.button, .woocommerce .checkout-button, .woocommerce input.button, #infinite-handle span button { text-shadow: none } a.button, button, html input[type="button"], input[type="reset"], input[type="submit"], .post-navigation a, #image-navigation a, article.post .more-link, article.page .more-link, .paging-navigation a, .woocommerce #page-wrapper .button, .woocommerce a.button, .woocommerce .checkout-button, .woocommerce input.button, .woocommerce #respond input#submit.alt, .woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt, #infinite-handle span { -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none } </style><style type="text/css" id="thrive-default-styles"></style><link rel="icon" href="https://greenrobot.org/wordpress/wp-content/uploads/cropped-greenrobot_2zeilig_512x512-32x32.png" sizes="32x32" /> <link rel="icon" href="https://greenrobot.org/wordpress/wp-content/uploads/cropped-greenrobot_2zeilig_512x512-192x192.png" sizes="192x192" /> <link rel="apple-touch-icon" href="https://greenrobot.org/wordpress/wp-content/uploads/cropped-greenrobot_2zeilig_512x512-180x180.png" /> <meta name="msapplication-TileImage" content="https://greenrobot.org/wordpress/wp-content/uploads/cropped-greenrobot_2zeilig_512x512-270x270.png" /> <style type="text/css" id="wp-custom-css"> .custom-comparison-table { width: 100%; border-collapse: separate; border-spacing: 10px; margin: 20px 0; } .custom-comparison-table td { vertical-align: middle; padding: 10px; } .custom-comparison-table .image-cell { width: 30%; text-align: center; } .custom-comparison-table .text-cell { width: 70%; } .custom-comparison-table img { max-width: 100%; height: auto; display: block; margin: 0 auto; } .custom-comparison-table h3 { margin: 0 0 5px; font-size: 1.2em; color: #333; } .custom-comparison-table p { margin: 0; font-size: 1em; color: #666; line-height: 1.4; } @media screen and (max-width: 768px) { .custom-comparison-table td { display: block; width: 100%; text-align: left; } .custom-comparison-table .image-cell { margin-bottom: 10px; } } </style> </head> <body class="home page-template page-template-templates page-template-template-full-notitle page-template-templatestemplate-full-notitle-php page page-id-832 siteorigin-panels siteorigin-panels-before-js siteorigin-panels-home group-blog responsive layout-full no-js has-menu-search panels-style-force-full page-layout-default not-default-page mobilenav"> <div id="page-wrapper"> <header id="masthead" class="site-header masthead-logo-in-menu" role="banner"> <nav role="navigation" class="site-navigation main-navigation primary use-sticky-menu mobile-navigation"> <div class="full-container"> <a href="https://greenrobot.org/" title="Open Source by greenrobot" rel="home" class="logo"><img src="https://greenrobot.org/wordpress/wp-content/uploads/test_01_02.png" class="logo-height-constrain" width="577" height="155" alt="Open Source by greenrobot Logo" /></a> <div id="search-icon"> <div id="search-icon-icon"><div class="vantage-icon-search"></div></div> <form method="get" class="searchform" action="https://greenrobot.org/" role="search"> <input type="text" class="field" name="s" value="" placeholder="Search"/> </form> </div> <div id="so-mobilenav-standard-1" data-id="1" class="so-mobilenav-standard"></div><div class="menu-my-pages-container"><ul id="menu-my-pages" class="menu"><li id="menu-item-473" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-473"><a href="https://greenrobot.org/eventbus/">EventBus</a> <ul class="sub-menu"> <li id="menu-item-583" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-583"><a href="https://greenrobot.org/eventbus/features/">Features</a></li> <li id="menu-item-481" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-481"><a href="https://greenrobot.org/eventbus/documentation/">Documentation</a> <ul class="sub-menu"> <li id="menu-item-616" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-616"><a href="https://greenrobot.org/eventbus/documentation/how-to-get-started/">How to get started</a></li> <li id="menu-item-624" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-624"><a href="https://greenrobot.org/eventbus/documentation/delivery-threads-threadmode/">Delivery Threads (ThreadMode)</a></li> <li id="menu-item-647" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-647"><a href="https://greenrobot.org/eventbus/documentation/configuration/">Configuration</a></li> <li id="menu-item-648" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-648"><a href="https://greenrobot.org/eventbus/documentation/configuration/sticky-events/">Sticky Events</a></li> <li id="menu-item-623" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-623"><a href="https://greenrobot.org/eventbus/documentation/priorities-and-event-cancellation/">Priorities and Event Cancellation</a></li> <li id="menu-item-605" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-605"><a href="https://greenrobot.org/eventbus/documentation/subscriber-index/">Subscriber Index</a></li> <li id="menu-item-646" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-646"><a href="https://greenrobot.org/eventbus/documentation/proguard/">ProGuard</a></li> <li id="menu-item-645" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-645"><a href="https://greenrobot.org/eventbus/documentation/asyncexecutor/">AsyncExecutor</a></li> <li id="menu-item-592" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-592"><a href="https://greenrobot.org/eventbus/documentation/faq/">FAQ</a></li> <li id="menu-item-484" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-484"><a href="https://greenrobot.org/files/eventbus/javadoc/current/"><span class="icon"></span>EventBus Java Docs</a></li> </ul> </li> <li id="menu-item-591" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-591"><a href="https://greenrobot.org/eventbus/license/">License</a></li> <li id="menu-item-615" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-615"><a href="https://greenrobot.org/eventbus/changelog/">Changelog</a></li> </ul> </li> <li id="menu-item-463" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-463"><a href="https://greenrobot.org/greendao/">greenDAO</a> <ul class="sub-menu"> <li id="menu-item-408" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-408"><a href="https://greenrobot.org/greendao/features/">Features</a></li> <li id="menu-item-409" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-409"><a href="https://greenrobot.org/greendao/documentation/">Documentation</a> <ul class="sub-menu"> <li id="menu-item-2501" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2501"><a href="https://greenrobot.org/greendao/documentation/objectbox-compat/">ObjectBox DaoCompat</a></li> <li id="menu-item-1129" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1129"><a href="https://greenrobot.org/greendao/documentation/updating-to-greendao-3-and-annotations/">greenDAO 3</a></li> <li id="menu-item-417" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-417"><a href="https://greenrobot.org/greendao/documentation/how-to-get-started/">How to get started</a></li> <li id="menu-item-410" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-410"><a href="https://greenrobot.org/greendao/documentation/introduction/">Introduction</a></li> <li id="menu-item-412" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-412"><a href="https://greenrobot.org/greendao/documentation/modelling-entities/">Modelling entities</a></li> <li id="menu-item-413" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-413"><a href="https://greenrobot.org/greendao/documentation/sessions/">Sessions</a></li> <li id="menu-item-416" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-416"><a href="https://greenrobot.org/greendao/documentation/queries/">Queries</a></li> <li id="menu-item-427" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-427"><a href="https://greenrobot.org/greendao/documentation/joins/">Joins</a></li> <li id="menu-item-415" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-415"><a href="https://greenrobot.org/greendao/documentation/relations/">Relations</a></li> <li id="menu-item-431" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-431"><a href="https://greenrobot.org/greendao/documentation/custom-types/">Custom Types</a></li> <li id="menu-item-778" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-778"><a href="https://greenrobot.org/greendao/documentation/database-encryption/">Database Encryption</a></li> <li id="menu-item-411" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-411"><a href="https://greenrobot.org/greendao/documentation/technical-faq/">Technical FAQ</a></li> <li id="menu-item-414" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-414"><a href="https://greenrobot.org/greendao/documentation/faq/">Non-technical FAQ</a></li> <li id="menu-item-1581" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1581"><a href="https://greenrobot.org/greendao/documentation/javadoc/">JavaDoc (API Reference)</a></li> </ul> </li> <li id="menu-item-773" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-773"><a href="https://greenrobot.org/greendao/changelog/">Changelog</a></li> </ul> </li> <li id="menu-item-577" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-577"><a href="https://greenrobot.org/essentials/">Essentials</a> <ul class="sub-menu"> <li id="menu-item-724" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-724"><a href="https://greenrobot.org/essentials/features/">Features</a> <ul class="sub-menu"> <li id="menu-item-1660" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1660"><a href="https://greenrobot.org/essentials/features/performant-hash-functions-for-java/">Essentials hash functions</a></li> <li id="menu-item-1661" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1661"><a href="https://greenrobot.org/essentials/features/performant-hash-functions-for-java/comparison-of-hash-functions/">Hash Comparison</a></li> </ul> </li> <li id="menu-item-730" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-730"><a href="https://greenrobot.org/essentials/changelog/">Changelog</a></li> </ul> </li> <li id="menu-item-2467" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2467"><a href="https://objectbox.io"><span class="icon"></span>ObjectBox</a></li> <li id="menu-item-405" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-405"><a href="https://greenrobot.org/contact-support/">Contact/Support</a> <ul class="sub-menu"> <li id="menu-item-785" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-785"><a href="https://greenrobot.org/jobs/">Jobs</a></li> </ul> </li> <li id="menu-item-406" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-406"><a href="https://greenrobot.org/blog/">Blog</a></li> </ul></div><div id="so-mobilenav-mobile-1" data-id="1" class="so-mobilenav-mobile"></div><div class="menu-mobilenav-container"><ul id="mobile-nav-item-wrap-1" class="menu"><li><a href="#" class="mobilenav-main-link" data-id="1"><span class="mobile-nav-icon"></span>Menu</a></li></ul></div> </div> </nav><!-- .site-navigation .main-navigation --> </header><!-- #masthead .site-header --> <div id="main-slider" data-stretch="true"><div id="metaslider-id-816" style="width: 100%; margin: 0 auto;" class="ml-slider-3-33-0 metaslider metaslider-flex metaslider-816 ml-slider ms-theme-default nav-hidden" role="region" aria-roledescription="Slideshow" aria-label="Slideshow"> <div id="metaslider_container_816"> <div id="metaslider_816"> <ul aria-live="polite" class="slides"> <li style="display: block; width: 100%;" class="slide-2014 ms-image" aria-roledescription="slide" aria-label="slide-2014"><img width="2160" height="600" src="https://greenrobot.org/wordpress/wp-content/uploads/app-performance.jpg" class="slider-816 slide-2014" alt="greenrobot delivers app performance" loading="lazy" rel="" title="" srcset="https://greenrobot.org/wordpress/wp-content/uploads/app-performance.jpg 2160w, https://greenrobot.org/wordpress/wp-content/uploads/app-performance-300x83.jpg 300w, https://greenrobot.org/wordpress/wp-content/uploads/app-performance-768x213.jpg 768w, https://greenrobot.org/wordpress/wp-content/uploads/app-performance-1024x284.jpg 1024w, https://greenrobot.org/wordpress/wp-content/uploads/app-performance-600x167.jpg 600w, https://greenrobot.org/wordpress/wp-content/uploads/app-performance-770x214.jpg 770w" sizes="(max-width: 2160px) 100vw, 2160px" /></li> </ul> </div> </div> </div></div> <div id="main" class="site-main"> <div class="full-container"> <div id="primary" class="content-area"> <div id="content" class="site-content" role="main"> <article id="post-832" class="post-832 page type-page status-publish post"> <div class="entry-main"> <div class="entry-content"> <div id="pl-832" class="panel-layout" ><div id="pg-832-0" class="panel-grid panel-has-style" ><div class="wide-grey siteorigin-panels-stretch panel-row-style-full-width panel-row-style panel-row-style-for-832-0" style="background-color: #fcfcfc; " data-stretch-type="full-stretched" ><div id="pgc-832-0-0" class="panel-grid-cell" ><div id="panel-832-0-0-0" class="so-panel widget widget_headline-widget panel-first-child panel-last-child" data-index="0" ><div class="panel-widget-style panel-widget-style-for-832-0-0-0" > <h1>Open Source libraries to make apps and app development fast and fun - less boilerplate and managing infrastructure code</h1> <div class="decoration"><div class="decoration-inside"></div></div> <h3>Our open source libraries run on over a billion devices and are used by large companies with especially high performance requirements. </br>Learn about our widely used, battle-tested, and performance-optimized open source libararies for mobile app development:</h3> </div></div></div></div></div><div id="pg-832-1" class="panel-grid panel-no-style" ><div id="pgc-832-1-0" class="panel-grid-cell" ><div id="panel-832-1-0-0" class="so-panel widget widget_text panel-first-child panel-last-child" data-index="1" ><div class="panel-widget-style panel-widget-style-for-832-1-0-0" > <div class="textwidget"><a href="./greendao/" class="link-title" style="text-decoration:none"><p style="font-size: x-large"><b>greenDAO</b></p> <p>The fastest ORM for Android that makes database development with SQLite fun again. Therefore, renowned industry leaders around the world trust in greenDAO* with apps used by millions of people.</p></a> <a href="http://www.appbrain.com/stats/libraries/details/greendao/greendao" style="float: right;">* See AppBrain</a></div> </div></div></div><div id="pgc-832-1-1" class="panel-grid-cell" ><div id="panel-832-1-1-0" class="so-panel widget widget_text panel-first-child panel-last-child" data-index="2" ><div class="panel-widget-style panel-widget-style-for-832-1-1-0" > <div class="textwidget"><a href="./eventbus/" class="link-title" style="text-decoration:none"><p style="font-size: x-large"><b>EventBus</b></p> <p>#1 publish/subscribe event bus optimized for Android and great for decoupling components. Eventbus is trusted by top-ranked app store successes* and implemented in apps used by billions of people.</p></a><a href="http://www.appbrain.com/stats/libraries/details/eventbus/greenrobot-eventbus" style="float: right;">* See AppBrain</a></div> </div></div></div><div id="pgc-832-1-2" class="panel-grid-cell" ><div id="panel-832-1-2-0" class="so-panel widget widget_text panel-first-child panel-last-child" data-index="3" ><div class="panel-widget-style panel-widget-style-for-832-1-2-0" > <div class="textwidget"><a href="./essentials/" class="link-title" style="text-decoration:none"><p style="font-size: x-large"><b>Essentials</b></p> <p>Super-slim general purpose library for Java and Android. Up to 10 times faster than others. The Essentials library is battle-tested, tiny in size (jar < 100k), and focused on efficiency and performance.</p></a> </div> </div></div></div></div><div id="pg-832-2" class="panel-grid panel-has-style" ><div class="siteorigin-panels-stretch panel-row-style-full-width panel-row-style panel-row-style-for-832-2" style="background-color: #ffffff; " data-stretch-type="full-stretched" ><div id="pgc-832-2-0" class="panel-grid-cell" ><div id="panel-832-2-0-0" class="so-panel widget widget_siteorigin-panels-builder panel-first-child panel-last-child" data-index="4" ><div class="panel-widget-style panel-widget-style-for-832-2-0-0" ><div id="pl-w578375fd5d579" class="panel-layout" ><div id="pg-w578375fd5d579-0" class="panel-grid panel-has-style" style="margin-bottom: 0px;" ><div class="siteorigin-panels-stretch panel-row-style-full-width panel-row-style panel-row-style-for-w578375fd5d579-0" style="background-color: #7fcd55; " data-stretch-type="full-stretched" ><div id="pgc-w578375fd5d579-0-0" class="panel-grid-cell" ><div id="panel-w578375fd5d579-0-0-0" class="so-panel widget widget_headline-widget panel-first-child panel-last-child" data-index="0" ><div class="panel-widget-style panel-widget-style-for-w578375fd5d579-0-0-0" > <h1>> 2.000.000.000 people rely on greenrobot libraries</h1> <div class="decoration"><div class="decoration-inside"></div></div> <h3>Slim & fast - that is what we stand for and that is why thousands of mobile developers wordlwide use our solutions, leading to more than a billion mobile users relying on our code</h3> </div></div></div></div></div></div></div></div></div></div></div><div id="pg-832-3" class="panel-grid panel-has-style" ><div style="background-color: #ffffff; " class="panel-row-style panel-row-style-for-832-3" ><div id="pgc-832-3-0" class="panel-grid-cell" ><div id="panel-832-3-0-0" class="so-panel widget widget_siteorigin-panels-builder panel-first-child panel-last-child" data-index="5" ><div id="pl-w57a0f54c820f2" class="panel-layout" ><div id="pg-w57a0f54c820f2-0" class="panel-grid panel-has-style" style="margin-bottom: 0px;" ><div style="background-color: #ffffff; " class="panel-row-style panel-row-style-for-w57a0f54c820f2-0" ><div id="pgc-w57a0f54c820f2-0-0" class="panel-grid-cell" ><div id="panel-w57a0f54c820f2-0-0-0" class="so-panel widget widget_sow-image panel-first-child" data-index="0" ><div class="so-widget-sow-image so-widget-sow-image-default-c67d20f9f743" > <div class="sow-image-container"> <img src="https://greenrobot.org/wordpress/wp-content/uploads/superfast-800-q50.jpg" width="800" height="534" srcset="https://greenrobot.org/wordpress/wp-content/uploads/superfast-800-q50.jpg 800w, https://greenrobot.org/wordpress/wp-content/uploads/superfast-800-q50-300x200.jpg 300w, https://greenrobot.org/wordpress/wp-content/uploads/superfast-800-q50-768x513.jpg 768w, https://greenrobot.org/wordpress/wp-content/uploads/superfast-800-q50-600x401.jpg 600w, https://greenrobot.org/wordpress/wp-content/uploads/superfast-800-q50-272x182.jpg 272w, https://greenrobot.org/wordpress/wp-content/uploads/superfast-800-q50-770x514.jpg 770w" sizes="(max-width: 800px) 100vw, 800px" alt="apps fast on the road" class="so-widget-image"/> </div> </div></div><div id="panel-w57a0f54c820f2-0-0-1" class="so-panel widget widget_text panel-last-child" data-index="1" ><div class="panel-widget-style panel-widget-style-for-w57a0f54c820f2-0-0-1" ><h3 class="widget-title">Superfast</h3> <div class="textwidget">Above all, we value performance. Speed matters. Thus, we constantly benchmark our solutions against alternatives and optimize for performance.</div> </div></div></div><div id="pgc-w57a0f54c820f2-0-1" class="panel-grid-cell" ><div id="panel-w57a0f54c820f2-0-1-0" class="so-panel widget widget_sow-image panel-first-child" data-index="2" ><div class="so-widget-sow-image so-widget-sow-image-default-c67d20f9f743" > <div class="sow-image-container"> <img src="https://greenrobot.org/wordpress/wp-content/uploads/open-source-lean-and-light-800q60.jpg" width="800" height="533" srcset="https://greenrobot.org/wordpress/wp-content/uploads/open-source-lean-and-light-800q60.jpg 800w, https://greenrobot.org/wordpress/wp-content/uploads/open-source-lean-and-light-800q60-300x200.jpg 300w, https://greenrobot.org/wordpress/wp-content/uploads/open-source-lean-and-light-800q60-768x512.jpg 768w, https://greenrobot.org/wordpress/wp-content/uploads/open-source-lean-and-light-800q60-600x400.jpg 600w, https://greenrobot.org/wordpress/wp-content/uploads/open-source-lean-and-light-800q60-272x182.jpg 272w, https://greenrobot.org/wordpress/wp-content/uploads/open-source-lean-and-light-800q60-770x513.jpg 770w" sizes="(max-width: 800px) 100vw, 800px" alt="lean and light development" loading="lazy" class="so-widget-image"/> </div> </div></div><div id="panel-w57a0f54c820f2-0-1-1" class="so-panel widget widget_text panel-last-child" data-index="3" ><div class="panel-widget-style panel-widget-style-for-w57a0f54c820f2-0-1-1" ><h3 class="widget-title">Lean & light</h3> <div class="textwidget">We keep all our solutions small and frugal. We also ensure all our open source libraries are optimized for maximum battery-friendliness. Perfect for mobile.</div> </div></div></div><div id="pgc-w57a0f54c820f2-0-2" class="panel-grid-cell" ><div id="panel-w57a0f54c820f2-0-2-0" class="so-panel widget widget_sow-image panel-first-child" data-index="4" ><div class="so-widget-sow-image so-widget-sow-image-default-c67d20f9f743" > <div class="sow-image-container"> <img src="https://greenrobot.org/wordpress/wp-content/uploads/easy-to-use-libraries-800q50.jpg" width="800" height="534" srcset="https://greenrobot.org/wordpress/wp-content/uploads/easy-to-use-libraries-800q50.jpg 800w, https://greenrobot.org/wordpress/wp-content/uploads/easy-to-use-libraries-800q50-300x200.jpg 300w, https://greenrobot.org/wordpress/wp-content/uploads/easy-to-use-libraries-800q50-768x513.jpg 768w, https://greenrobot.org/wordpress/wp-content/uploads/easy-to-use-libraries-800q50-600x401.jpg 600w, https://greenrobot.org/wordpress/wp-content/uploads/easy-to-use-libraries-800q50-272x182.jpg 272w, https://greenrobot.org/wordpress/wp-content/uploads/easy-to-use-libraries-800q50-770x514.jpg 770w" sizes="(max-width: 800px) 100vw, 800px" alt="Easy to use libraries" loading="lazy" class="so-widget-image"/> </div> </div></div><div id="panel-w57a0f54c820f2-0-2-1" class="so-panel widget widget_text panel-last-child" data-index="5" ><div class="panel-widget-style panel-widget-style-for-w57a0f54c820f2-0-2-1" ><h3 class="widget-title">Easy-to-use</h3> <div class="textwidget">We are developers ourselves and value the fun aspects of coding. Accordingly, our libraries are easy to use and save developers from tedious and unituitive tasks.</div> </div></div></div><div id="pgc-w57a0f54c820f2-0-3" class="panel-grid-cell" ><div id="panel-w57a0f54c820f2-0-3-0" class="so-panel widget widget_sow-image panel-first-child" data-index="6" ><div class="so-widget-sow-image so-widget-sow-image-default-c67d20f9f743" > <div class="sow-image-container"> <img src="https://greenrobot.org/wordpress/wp-content/uploads/developer-driven-800q50.jpg" width="800" height="533" srcset="https://greenrobot.org/wordpress/wp-content/uploads/developer-driven-800q50.jpg 800w, https://greenrobot.org/wordpress/wp-content/uploads/developer-driven-800q50-300x200.jpg 300w, https://greenrobot.org/wordpress/wp-content/uploads/developer-driven-800q50-768x512.jpg 768w, https://greenrobot.org/wordpress/wp-content/uploads/developer-driven-800q50-600x400.jpg 600w, https://greenrobot.org/wordpress/wp-content/uploads/developer-driven-800q50-272x182.jpg 272w, https://greenrobot.org/wordpress/wp-content/uploads/developer-driven-800q50-770x513.jpg 770w" sizes="(max-width: 800px) 100vw, 800px" alt="Open development" loading="lazy" class="so-widget-image"/> </div> </div></div><div id="panel-w57a0f54c820f2-0-3-1" class="so-panel widget widget_text panel-last-child" data-index="7" ><div class="panel-widget-style panel-widget-style-for-w57a0f54c820f2-0-3-1" ><h3 class="widget-title">Developer-driven</h3> <div class="textwidget">We are passionate to deliver high performant, slim, and elegant solutions. <a href="https://github.com/greenrobot">Our libraries have more than 15.000 GitHub stars</a> and are <a href="http://www.appbrain.com/stats/libraries/details/eventbus/greenrobot-eventbus"> industry-proven</a>.</div> </div></div></div></div></div></div></div></div></div></div><div id="pg-832-4" class="panel-grid panel-has-style" ><div class="siteorigin-panels-stretch panel-row-style-full-width panel-row-style panel-row-style-for-832-4" data-stretch-type="full-stretched" ><div id="pgc-832-4-0" class="panel-grid-cell" ><div id="panel-832-4-0-0" class="so-panel widget widget_siteorigin-panels-builder panel-first-child panel-last-child" data-index="6" ><div id="pl-w577f9b938c6c1" class="panel-layout" ><div id="pg-w577f9b938c6c1-0" class="panel-grid panel-no-style" style="margin-bottom: 0px;" ><div id="pgc-w577f9b938c6c1-0-0" class="panel-grid-cell" ><div id="panel-w577f9b938c6c1-0-0-0" class="so-panel widget widget_headline-widget panel-first-child panel-last-child" data-index="0" > <h1>Mobile News from greenrobot</h1> <div class="decoration"><div class="decoration-inside"></div></div> <h3>Library updates, new releases, related developments in open source, mobile databases, and Android</h3> </div></div></div></div></div></div></div></div><div id="pg-832-5" class="panel-grid panel-has-style" ><div class="siteorigin-panels-stretch panel-row-style-full-width panel-row-style panel-row-style-for-832-5" data-stretch-type="full" ><div id="pgc-832-5-0" class="panel-grid-cell" ><div id="panel-832-5-0-0" class="so-panel widget widget_siteorigin-panels-builder panel-first-child panel-last-child" data-index="7" ><div id="pl-w5f4e1aedae5e9" class="panel-layout" ><div id="pg-w5f4e1aedae5e9-0" class="panel-grid panel-no-style" ><div id="pgc-w5f4e1aedae5e9-0-0" class="panel-grid-cell" ><div id="panel-w5f4e1aedae5e9-0-0-0" class="so-panel widget widget_siteorigin-panels-postloop panel-first-child panel-last-child" data-index="0" > <article id="post-3085" class="post-3085 post type-post status-publish format-standard has-post-thumbnail hentry category-database tag-dart-database tag-flutter-database tag-mobile-database tag-nosql tag-sqlite post-with-thumbnail post-with-thumbnail-large"> <div class="entry-main"> <header class="entry-header"> <div class="entry-thumbnail"> <a href="https://greenrobot.org/database/flutter-databases-overview/"><img width="720" height="380" src="https://greenrobot.org/wordpress/wp-content/uploads/FlutterDatabases2025-720x380.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="FlutterDatabases2025" loading="lazy" srcset="https://greenrobot.org/wordpress/wp-content/uploads/FlutterDatabases2025-720x380.jpg 720w, https://greenrobot.org/wordpress/wp-content/uploads/FlutterDatabases2025-330x174.jpg 330w" sizes="(max-width: 720px) 100vw, 720px" /></a> </div> <h1 class="entry-title"><a href="https://greenrobot.org/database/flutter-databases-overview/" title="Permalink to Flutter databases overview – updated 2025" rel="bookmark">Flutter databases overview – updated 2025</a></h1> </header><!-- .entry-header --> <div class="entry-content"> <p>Flutter databases are databases specifically designed to give Flutter / Dart apps fast data persistence. Other databases can be used depending on the database and use case, but in our experience Flutter databases are easier to use and faster in Flutter/Dart apps. Note: Because “Dart” is such an ambiguous term, “Flutter database” is the established terminology (even though from a tech perspective it is not a great name).</p> <p>As a Flutter app developer, selecting the right local database is important. After a market overview and terminology, we’ll compare the most popular options (ObjectBox, sqflite, Drift, Floor, Isar, Hive, Sembast, MongoDB Realm) in a matrix.</p> <a class="more-link" href="https://greenrobot.org/database/flutter-databases-overview/">Continue reading<span class="meta-nav">→</span></a> </div><!-- .entry-content --> </div> </article><!-- #post-3085 --> <article id="post-3184" class="post-3184 post type-post status-publish format-standard has-post-thumbnail hentry category-news post-with-thumbnail post-with-thumbnail-large"> <div class="entry-main"> <header class="entry-header"> <div class="entry-thumbnail"> <a href="https://greenrobot.org/news/why-out-of-the-box-data-sync-solutions-are-more-important-than-ever/"><img width="720" height="380" src="https://greenrobot.org/wordpress/wp-content/uploads/DataSyncIceberg-720x380.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="The complexities of Data Sync" loading="lazy" srcset="https://greenrobot.org/wordpress/wp-content/uploads/DataSyncIceberg-720x380.jpg 720w, https://greenrobot.org/wordpress/wp-content/uploads/DataSyncIceberg-330x174.jpg 330w" sizes="(max-width: 720px) 100vw, 720px" /></a> </div> <h1 class="entry-title"><a href="https://greenrobot.org/news/why-out-of-the-box-data-sync-solutions-are-more-important-than-ever/" title="Permalink to Why out-of-the-box Data Sync solutions are more important than ever" rel="bookmark">Why out-of-the-box Data Sync solutions are more important than ever</a></h1> </header><!-- .entry-header --> <div class="entry-content"> <p><span style="font-weight: 400;">The need for bi-directional </span><a href="https://objectbox.io/what-is-data-synchronization-how-to-keep-data-in-sync/"><span style="font-weight: 400;">Data Sync</span></a><span style="font-weight: 400;"> solutions has never been higher as organizations face an explosion of connected devices, data volumes, and regulatory requirements.</span><span style="font-weight: 400;"><br /></span><span style="font-weight: 400;"><br /></span><span style="font-weight: 400;">By 2030, decentralized </span><a href="https://www.statista.com/statistics/512650/worldwide-connected-devices-amount/"><span style="font-weight: 400;">connected devices (IoT & mobile) are expected to double to over 50 billion</span></a><span style="font-weight: 400;">, generating </span><a href="https://www.statista.com/statistics/871513/worldwide-data-created/"><span style="font-weight: 400;">unprecedented data volumes of estimated 180 zettabytes annually by 2025</span></a><span style="font-weight: 400;">. This data is generated everywhere, and its rapid growth raises significant sustainability concerns, with </span><a href="https://www.mckinsey.com/industries/private-capital/our-insights/how-data-centers-and-the-energy-sector-can-sate-ais-hunger-for-power"><span style="font-weight: 400;">data centers projected to consume 12% of U.S. power by 2030</span></a><span style="font-weight: 400;">. And last but not least, compliance with growing data privacy regulations like </span><a href="https://www.consilium.europa.eu/en/policies/data-protection/data-protection-regulation/#:~:text=data%20protection%20rules-,What%20is%20the%20GDPR%3F,the%201995%20data%20protection%20directive."><span style="font-weight: 400;">GDPR</span></a><span style="font-weight: 400;"> and </span><a href="https://www.hhs.gov/hipaa/index.html"><span style="font-weight: 400;">HIPAA</span></a><span style="font-weight: 400;"> adds further pressure.</span></p> <p><a class="more-link" href="https://greenrobot.org/news/why-out-of-the-box-data-sync-solutions-are-more-important-than-ever/">Continue reading<span class="meta-nav">→</span></a></p> </div><!-- .entry-content --> </div> </article><!-- #post-3184 --> <article id="post-3122" class="post-3122 post type-post status-publish format-standard has-post-thumbnail hentry category-database tag-ai tag-vector-database post-with-thumbnail post-with-thumbnail-large"> <div class="entry-main"> <header class="entry-header"> <div class="entry-thumbnail"> <a href="https://greenrobot.org/database/top-vector-databases/"><img width="720" height="380" src="https://greenrobot.org/wordpress/wp-content/uploads/vectordatabases-2024-gr-720x380.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Vector Databases 2024" loading="lazy" srcset="https://greenrobot.org/wordpress/wp-content/uploads/vectordatabases-2024-gr-720x380.jpg 720w, https://greenrobot.org/wordpress/wp-content/uploads/vectordatabases-2024-gr-330x174.jpg 330w" sizes="(max-width: 720px) 100vw, 720px" /></a> </div> <h1 class="entry-title"><a href="https://greenrobot.org/database/top-vector-databases/" title="Permalink to Top vector database choices in 2024" rel="bookmark">Top vector database choices in 2024</a></h1> </header><!-- .entry-header --> <div class="entry-content"> <p><span style="font-weight: 400;">In today’s AI-driven world, the importance of efficient data management cannot be overstated. Vector databases play a crucial role in providing the infrastructure for ML applications. In this article, we will explore the significance of vector databases in AI and examine the current top vector database options available in the market.</span></p> <a class="more-link" href="https://greenrobot.org/database/top-vector-databases/">Continue reading<span class="meta-nav">→</span></a> </div><!-- .entry-content --> </div> </article><!-- #post-3122 --> <article id="post-2972" class="post-2972 post type-post status-publish format-standard has-post-thumbnail hentry category-database tag-edge-database tag-embedded-database tag-objectbox post-with-thumbnail post-with-thumbnail-large"> <div class="entry-main"> <header class="entry-header"> <div class="entry-thumbnail"> <a href="https://greenrobot.org/database/embedded-database/"><img width="720" height="380" src="https://greenrobot.org/wordpress/wp-content/uploads/2022_EmbeddedDatabases-720x380.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Embedded Databases explained" loading="lazy" srcset="https://greenrobot.org/wordpress/wp-content/uploads/2022_EmbeddedDatabases-720x380.jpg 720w, https://greenrobot.org/wordpress/wp-content/uploads/2022_EmbeddedDatabases-330x174.jpg 330w" sizes="(max-width: 720px) 100vw, 720px" /></a> </div> <h1 class="entry-title"><a href="https://greenrobot.org/database/embedded-database/" title="Permalink to Embedded databases explained" rel="bookmark">Embedded databases explained</a></h1> </header><!-- .entry-header --> <div class="entry-content"> <p>Accelerated by the Corona pandemic, exploding numbers of connected devices and data volumes drive a <a href="https://objectbox.io/what-is-edge-computing/" target="_blank" rel="noreferrer noopener">shift towards decentralized Edge Computing</a> and with it the need for embedded database management systems continues to grow rapidly. <a href="https://www.databridgemarketresearch.com/reports/global-embedded-database-management-systems-market#">Analysts expect the Embedded Database market to grow by 60% annually (CAGR) from 2022-2029</a>. </p> <h2>What is an Embedded Database?</h2> <h3>What is a database vs. a DBMS?</h3> <p>A “database” is an organized collection of (structured or unstructured) data, typically stored electronically in a computer system. The most common database operations are Create, Read, Update, Delete (CRUD). “Database Management System” (or DBMS) refers to the piece of software for storing and managing that data. However, often the term “database” is also used loosely to refer to a DBMS, and you will find most DBMS only use the term database in their name and communication.<br /></p> <h3>What does “embedded” mean in the database world?</h3> <p>The term “embedded” can mean two different things when used in the context of databases:</p> <ol><li>“<strong>Database for </strong><a href="https://en.wikipedia.org/wiki/Embedded_system"><strong>embedded systems</strong></a>” is a database specifically designed to be used in embedded systems. Embedded systems are systems consisting of a deeply integrated hardware / software combination, e.g. electronic control units (ECUs), IoT devices. A database for such systems must have<ul><li>a small footprint and</li><li>be optimised to run on highly restricted hardware</li><li>thrifty with resource-use, e.g. CPU, Memory, Battery. <br /></li></ul></li><li>“<a href="https://en.wikipedia.org/wiki/Embedded_database"><strong>Embedded database</strong></a>”: this means that the database is deeply integrated in the software / application. Also referred to as an “embeddable database”, “embedded database management system” or “embedded DBMS (Database Management System)”. </li></ol> <a class="more-link" href="https://greenrobot.org/database/embedded-database/">Continue reading<span class="meta-nav">→</span></a> </div><!-- .entry-content --> </div> </article><!-- #post-2972 --> <nav role="navigation" id="nav-below" class="site-navigation paging-navigation"> <h1 class="assistive-text">Post navigation</h1> <div class='pagination'><span aria-current="page" class="page-numbers current">1</span> <a class="page-numbers" href="https://greenrobot.org/page/2/">2</a> <a class="page-numbers" href="https://greenrobot.org/page/3/">3</a> <a class="page-numbers" href="https://greenrobot.org/page/4/">4</a> <a class="page-numbers" href="https://greenrobot.org/page/5/">5</a> <a class="page-numbers" href="https://greenrobot.org/page/6/">6</a> <span class="page-numbers dots">…</span> <a class="page-numbers" href="https://greenrobot.org/page/13/">13</a> <a class="next page-numbers" href="https://greenrobot.org/page/2/">Next »</a></div> </nav><!-- #nav-below --> </div></div><div id="pgc-w5f4e1aedae5e9-0-1" class="panel-grid-cell" ><div id="panel-w5f4e1aedae5e9-0-1-0" class="so-panel widget widget_tag_cloud panel-first-child" data-index="1" ><h3 class="widget-title">Tags</h3><div class="tagcloud"><a href="https://greenrobot.org/tag/activeandroid/" class="tag-cloud-link tag-link-32 tag-link-position-1" style="font-size: 10.3333333333pt;" aria-label="ActiveAndroid (2 items)">ActiveAndroid</a> <a href="https://greenrobot.org/tag/active-entities/" class="tag-cloud-link tag-link-5 tag-link-position-2" style="font-size: 10.3333333333pt;" aria-label="Active Entities (2 items)">Active Entities</a> <a href="https://greenrobot.org/tag/ai/" class="tag-cloud-link tag-link-149 tag-link-position-3" style="font-size: 8pt;" aria-label="ai (1 item)">ai</a> <a href="https://greenrobot.org/tag/android-database/" class="tag-cloud-link tag-link-131 tag-link-position-4" style="font-size: 8pt;" aria-label="Android database (1 item)">Android database</a> <a href="https://greenrobot.org/tag/annotations/" class="tag-cloud-link tag-link-49 tag-link-position-5" style="font-size: 15.7777777778pt;" aria-label="Annotations (7 items)">Annotations</a> <a href="https://greenrobot.org/tag/benchmark/" class="tag-cloud-link tag-link-89 tag-link-position-6" style="font-size: 11.8888888889pt;" aria-label="Benchmark (3 items)">Benchmark</a> <a href="https://greenrobot.org/tag/beta/" class="tag-cloud-link tag-link-88 tag-link-position-7" style="font-size: 11.8888888889pt;" aria-label="beta (3 items)">beta</a> <a href="https://greenrobot.org/tag/daocompat/" class="tag-cloud-link tag-link-124 tag-link-position-8" style="font-size: 8pt;" aria-label="DaoCompat (1 item)">DaoCompat</a> <a href="https://greenrobot.org/tag/dart-database/" class="tag-cloud-link tag-link-146 tag-link-position-9" style="font-size: 8pt;" aria-label="dart database (1 item)">dart database</a> <a href="https://greenrobot.org/tag/data-listeners/" class="tag-cloud-link tag-link-119 tag-link-position-10" style="font-size: 8pt;" aria-label="Data Listeners (1 item)">Data Listeners</a> <a href="https://greenrobot.org/tag/dbflow/" class="tag-cloud-link tag-link-83 tag-link-position-11" style="font-size: 10.3333333333pt;" aria-label="DbFlow (2 items)">DbFlow</a> <a href="https://greenrobot.org/tag/documentation/" class="tag-cloud-link tag-link-121 tag-link-position-12" style="font-size: 8pt;" aria-label="Documentation (1 item)">Documentation</a> <a href="https://greenrobot.org/tag/edge-database/" class="tag-cloud-link tag-link-136 tag-link-position-13" style="font-size: 8pt;" aria-label="Edge Database (1 item)">Edge Database</a> <a href="https://greenrobot.org/tag/embedded-database/" class="tag-cloud-link tag-link-133 tag-link-position-14" style="font-size: 8pt;" aria-label="Embedded Database (1 item)">Embedded Database</a> <a href="https://greenrobot.org/tag/encryption/" class="tag-cloud-link tag-link-68 tag-link-position-15" style="font-size: 10.3333333333pt;" aria-label="Encryption (2 items)">Encryption</a> <a href="https://greenrobot.org/tag/eventbus/" class="tag-cloud-link tag-link-36 tag-link-position-16" style="font-size: 15.7777777778pt;" aria-label="EventBus (7 items)">EventBus</a> <a href="https://greenrobot.org/tag/flutter-database/" class="tag-cloud-link tag-link-145 tag-link-position-17" style="font-size: 8pt;" aria-label="flutter database (1 item)">flutter database</a> <a href="https://greenrobot.org/tag/gradle/" class="tag-cloud-link tag-link-26 tag-link-position-18" style="font-size: 10.3333333333pt;" aria-label="Gradle (2 items)">Gradle</a> <a href="https://greenrobot.org/tag/greendao/" class="tag-cloud-link tag-link-35 tag-link-position-19" style="font-size: 22pt;" aria-label="greenDAO (23 items)">greenDAO</a> <a href="https://greenrobot.org/tag/greenrobot-common/" class="tag-cloud-link tag-link-37 tag-link-position-20" style="font-size: 10.3333333333pt;" aria-label="greenrobot-common (2 items)">greenrobot-common</a> <a href="https://greenrobot.org/tag/index/" class="tag-cloud-link tag-link-25 tag-link-position-21" style="font-size: 11.8888888889pt;" aria-label="index (3 items)">index</a> <a href="https://greenrobot.org/tag/javadocs/" class="tag-cloud-link tag-link-59 tag-link-position-22" style="font-size: 10.3333333333pt;" aria-label="JavaDocs (2 items)">JavaDocs</a> <a href="https://greenrobot.org/tag/jdt/" class="tag-cloud-link tag-link-120 tag-link-position-23" style="font-size: 8pt;" aria-label="JDT (1 item)">JDT</a> <a href="https://greenrobot.org/tag/main-thread/" class="tag-cloud-link tag-link-127 tag-link-position-24" style="font-size: 8pt;" aria-label="main thread (1 item)">main thread</a> <a href="https://greenrobot.org/tag/mobile-database/" class="tag-cloud-link tag-link-92 tag-link-position-25" style="font-size: 15.7777777778pt;" aria-label="mobile database (7 items)">mobile database</a> <a href="https://greenrobot.org/tag/multithreading/" class="tag-cloud-link tag-link-29 tag-link-position-26" style="font-size: 10.3333333333pt;" aria-label="Multithreading (2 items)">Multithreading</a> <a href="https://greenrobot.org/tag/nosql/" class="tag-cloud-link tag-link-86 tag-link-position-27" style="font-size: 14.2222222222pt;" aria-label="NoSQL (5 items)">NoSQL</a> <a href="https://greenrobot.org/tag/objectbox/" class="tag-cloud-link tag-link-111 tag-link-position-28" style="font-size: 18.1111111111pt;" aria-label="ObjectBox (11 items)">ObjectBox</a> <a href="https://greenrobot.org/tag/open-source/" class="tag-cloud-link tag-link-14 tag-link-position-29" style="font-size: 11.8888888889pt;" aria-label="Open Source (3 items)">Open Source</a> <a href="https://greenrobot.org/tag/orm/" class="tag-cloud-link tag-link-33 tag-link-position-30" style="font-size: 13.1851851852pt;" aria-label="ORM (4 items)">ORM</a> <a href="https://greenrobot.org/tag/ormlite/" class="tag-cloud-link tag-link-31 tag-link-position-31" style="font-size: 11.8888888889pt;" aria-label="OrmLite (3 items)">OrmLite</a> <a href="https://greenrobot.org/tag/perfmatters/" class="tag-cloud-link tag-link-93 tag-link-position-32" style="font-size: 10.3333333333pt;" aria-label="perfmatters (2 items)">perfmatters</a> <a href="https://greenrobot.org/tag/performance/" class="tag-cloud-link tag-link-12 tag-link-position-33" style="font-size: 18.1111111111pt;" aria-label="Performance (11 items)">Performance</a> <a href="https://greenrobot.org/tag/plain-java/" class="tag-cloud-link tag-link-125 tag-link-position-34" style="font-size: 8pt;" aria-label="plain Java (1 item)">plain Java</a> <a href="https://greenrobot.org/tag/query/" class="tag-cloud-link tag-link-11 tag-link-position-35" style="font-size: 13.1851851852pt;" aria-label="Query (4 items)">Query</a> <a href="https://greenrobot.org/tag/querybuilder/" class="tag-cloud-link tag-link-8 tag-link-position-36" style="font-size: 11.8888888889pt;" aria-label="QueryBuilder (3 items)">QueryBuilder</a> <a href="https://greenrobot.org/tag/reflection/" class="tag-cloud-link tag-link-50 tag-link-position-37" style="font-size: 10.3333333333pt;" aria-label="Reflection (2 items)">Reflection</a> <a href="https://greenrobot.org/tag/release/" class="tag-cloud-link tag-link-15 tag-link-position-38" style="font-size: 18.5pt;" aria-label="Release (12 items)">Release</a> <a href="https://greenrobot.org/tag/requery/" class="tag-cloud-link tag-link-85 tag-link-position-39" style="font-size: 10.3333333333pt;" aria-label="Requery (2 items)">Requery</a> <a href="https://greenrobot.org/tag/sqlcipher/" class="tag-cloud-link tag-link-67 tag-link-position-40" style="font-size: 10.3333333333pt;" aria-label="SQLCipher (2 items)">SQLCipher</a> <a href="https://greenrobot.org/tag/sqlite/" class="tag-cloud-link tag-link-18 tag-link-position-41" style="font-size: 15.7777777778pt;" aria-label="SQLite (7 items)">SQLite</a> <a href="https://greenrobot.org/tag/techstars/" class="tag-cloud-link tag-link-123 tag-link-position-42" style="font-size: 8pt;" aria-label="Techstars (1 item)">Techstars</a> <a href="https://greenrobot.org/tag/thread-mode/" class="tag-cloud-link tag-link-126 tag-link-position-43" style="font-size: 8pt;" aria-label="thread mode (1 item)">thread mode</a> <a href="https://greenrobot.org/tag/to-many/" class="tag-cloud-link tag-link-16 tag-link-position-44" style="font-size: 10.3333333333pt;" aria-label="To-Many (2 items)">To-Many</a> <a href="https://greenrobot.org/tag/vector-database/" class="tag-cloud-link tag-link-148 tag-link-position-45" style="font-size: 8pt;" aria-label="vector database (1 item)">vector database</a></div> </div><div id="panel-w5f4e1aedae5e9-0-1-1" class="so-panel widget widget_recent-comments widget_recent_comments panel-last-child" data-index="2" ><h3 class="widget-title">Recent Comments</h3><ul id="recentcomments"><li class="recentcomments"><span class="comment-author-link"><a href='https://greenrobot.org/news/flutter-databases-2023-comparison-matrix-mobile-version/' rel='external nofollow ugc' class='url'>Flutter Databases 2023 comparison matrix - mobile version</a></span> on <a href="https://greenrobot.org/database/flutter-databases-overview/#comment-12799">Flutter databases overview – updated 2025</a></li><li class="recentcomments"><span class="comment-author-link"><a href='http://rayliverified.com' rel='external nofollow ugc' class='url'>Ray Li</a></span> on <a href="https://greenrobot.org/release/eventbus-3-1-plain-java-support/#comment-12634">EventBus 3.1 with plain Java support</a></li><li class="recentcomments"><span class="comment-author-link">jp1017</span> on <a href="https://greenrobot.org/release/eventbus-3-1-plain-java-support/#comment-12631">EventBus 3.1 with plain Java support</a></li><li class="recentcomments"><span class="comment-author-link">William Ferguson</span> on <a href="https://greenrobot.org/release/eventbus-3-1-plain-java-support/#comment-12630">EventBus 3.1 with plain Java support</a></li><li class="recentcomments"><span class="comment-author-link">DaoMaster</span> on <a href="https://greenrobot.org/release/daocompat-greendao-on-objectbox/#comment-12625">Introducing DaoCompat: greenDAO on ObjectBox</a></li></ul></div></div></div></div></div></div></div></div></div><span id="tve_leads_end_content" style="display: block; visibility: hidden; border: 1px solid transparent;"></span><div style='clear:both'></div><div class='the_champ_sharing_container the_champ_horizontal_sharing' data-super-socializer-href="https://greenrobot.org/"><div class='the_champ_sharing_title' style="font-weight:bold" >Spread the love</div><div class="the_champ_sharing_ul"><a class="the_champ_facebook" href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fgreenrobot.org%2F" title="Facebook" rel="nofollow noopener" target="_blank" style="font-size:24px!important;box-shadow:none;display:inline-block;vertical-align:middle"><span class="the_champ_square_count the_champ_facebook_count" style="visibility:visible;">48</span><span class="the_champ_svg" style="background-color:#3c589a;width:36px;height:36px;display:inline-block;opacity:1;float:left;font-size:24px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box"><svg style="display:block;" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="-5 -5 42 42"><path d="M17.78 27.5V17.008h3.522l.527-4.09h-4.05v-2.61c0-1.182.33-1.99 2.023-1.99h2.166V4.66c-.375-.05-1.66-.16-3.155-.16-3.123 0-5.26 1.905-5.26 5.405v3.016h-3.53v4.09h3.53V27.5h4.223z" fill="#fff"></path></svg></span></a><a class="the_champ_button_twitter" href="https://twitter.com/intent/tweet?text=greenrobot%20Open%20Source%20Libraries&url=https%3A%2F%2Fgreenrobot.org%2F" title="Twitter" rel="nofollow noopener" target="_blank" style="font-size:24px!important;box-shadow:none;display:inline-block;vertical-align:middle"><span class="the_champ_square_count the_champ_twitter_count"> </span><span class="the_champ_svg the_champ_s__default the_champ_s_twitter" style="background-color:#55acee;width:36px;height:36px;display:inline-block;opacity:1;float:left;font-size:24px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box"><svg style="display:block;" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="-4 -4 39 39"><path d="M28 8.557a9.913 9.913 0 0 1-2.828.775 4.93 4.93 0 0 0 2.166-2.725 9.738 9.738 0 0 1-3.13 1.194 4.92 4.92 0 0 0-3.593-1.55 4.924 4.924 0 0 0-4.794 6.049c-4.09-.21-7.72-2.17-10.15-5.15a4.942 4.942 0 0 0-.665 2.477c0 1.71.87 3.214 2.19 4.1a4.968 4.968 0 0 1-2.23-.616v.06c0 2.39 1.7 4.38 3.952 4.83-.414.115-.85.174-1.297.174-.318 0-.626-.03-.928-.086a4.935 4.935 0 0 0 4.6 3.42 9.893 9.893 0 0 1-6.114 2.107c-.398 0-.79-.023-1.175-.068a13.953 13.953 0 0 0 7.55 2.213c9.056 0 14.01-7.507 14.01-14.013 0-.213-.005-.426-.015-.637.96-.695 1.795-1.56 2.455-2.55z" fill="#fff"></path></svg></span></a><a class="the_champ_button_linkedin" href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fgreenrobot.org%2F&title=greenrobot%20Open%20Source%20Libraries" title="Linkedin" rel="nofollow noopener" target="_blank" style="font-size:24px!important;box-shadow:none;display:inline-block;vertical-align:middle"><span class="the_champ_square_count the_champ_linkedin_count"> </span><span class="the_champ_svg the_champ_s__default the_champ_s_linkedin" style="background-color:#0077b5;width:36px;height:36px;display:inline-block;opacity:1;float:left;font-size:24px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box"><svg style="display:block;" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 32 32"><path d="M6.227 12.61h4.19v13.48h-4.19V12.61zm2.095-6.7a2.43 2.43 0 0 1 0 4.86c-1.344 0-2.428-1.09-2.428-2.43s1.084-2.43 2.428-2.43m4.72 6.7h4.02v1.84h.058c.56-1.058 1.927-2.176 3.965-2.176 4.238 0 5.02 2.792 5.02 6.42v7.395h-4.183v-6.56c0-1.564-.03-3.574-2.178-3.574-2.18 0-2.514 1.7-2.514 3.46v6.668h-4.187V12.61z" fill="#fff"></path></svg></span></a><a class="the_champ_button_pinterest" href="https://greenrobot.org/" onclick="event.preventDefault();javascript:void((function(){var e=document.createElement('script');e.setAttribute('type','text/javascript');e.setAttribute('charset','UTF-8');e.setAttribute('src','//assets.pinterest.com/js/pinmarklet.js?r='+Math.random()*99999999);document.body.appendChild(e)})());" title="Pinterest" rel="nofollow noopener" style="font-size:24px!important;box-shadow:none;display:inline-block;vertical-align:middle"><span class="the_champ_square_count the_champ_pinterest_count"> </span><span class="the_champ_svg the_champ_s__default the_champ_s_pinterest" style="background-color:#cc2329;width:36px;height:36px;display:inline-block;opacity:1;float:left;font-size:24px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box"><svg style="display:block;" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="-2 -2 35 35"><path fill="#fff" d="M16.539 4.5c-6.277 0-9.442 4.5-9.442 8.253 0 2.272.86 4.293 2.705 5.046.303.125.574.005.662-.33.061-.231.205-.816.27-1.06.088-.331.053-.447-.191-.736-.532-.627-.873-1.439-.873-2.591 0-3.338 2.498-6.327 6.505-6.327 3.548 0 5.497 2.168 5.497 5.062 0 3.81-1.686 7.025-4.188 7.025-1.382 0-2.416-1.142-2.085-2.545.397-1.674 1.166-3.48 1.166-4.689 0-1.081-.581-1.983-1.782-1.983-1.413 0-2.548 1.462-2.548 3.419 0 1.247.421 2.091.421 2.091l-1.699 7.199c-.505 2.137-.076 4.755-.039 5.019.021.158.223.196.314.077.13-.17 1.813-2.247 2.384-4.324.162-.587.929-3.631.929-3.631.46.876 1.801 1.646 3.227 1.646 4.247 0 7.128-3.871 7.128-9.053.003-3.918-3.317-7.568-8.361-7.568z"/></svg></span></a><a class="the_champ_button_reddit" href="http://reddit.com/submit?url=https%3A%2F%2Fgreenrobot.org%2F&title=greenrobot%20Open%20Source%20Libraries" title="Reddit" rel="nofollow noopener" target="_blank" style="font-size:24px!important;box-shadow:none;display:inline-block;vertical-align:middle"><span class="the_champ_square_count the_champ_reddit_count"> </span><span class="the_champ_svg the_champ_s__default the_champ_s_reddit" style="background-color:#ff5700;width:36px;height:36px;display:inline-block;opacity:1;float:left;font-size:24px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box"><svg style="display:block;" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="-3.5 -3.5 39 39"><path d="M28.543 15.774a2.953 2.953 0 0 0-2.951-2.949 2.882 2.882 0 0 0-1.9.713 14.075 14.075 0 0 0-6.85-2.044l1.38-4.349 3.768.884a2.452 2.452 0 1 0 .24-1.176l-4.274-1a.6.6 0 0 0-.709.4l-1.659 5.224a14.314 14.314 0 0 0-7.316 2.029 2.908 2.908 0 0 0-1.872-.681 2.942 2.942 0 0 0-1.618 5.4 5.109 5.109 0 0 0-.062.765c0 4.158 5.037 7.541 11.229 7.541s11.22-3.383 11.22-7.541a5.2 5.2 0 0 0-.053-.706 2.963 2.963 0 0 0 1.427-2.51zm-18.008 1.88a1.753 1.753 0 0 1 1.73-1.74 1.73 1.73 0 0 1 1.709 1.74 1.709 1.709 0 0 1-1.709 1.711 1.733 1.733 0 0 1-1.73-1.711zm9.565 4.968a5.573 5.573 0 0 1-4.081 1.272h-.032a5.576 5.576 0 0 1-4.087-1.272.6.6 0 0 1 .844-.854 4.5 4.5 0 0 0 3.238.927h.032a4.5 4.5 0 0 0 3.237-.927.6.6 0 1 1 .844.854zm-.331-3.256a1.726 1.726 0 1 1 1.709-1.712 1.717 1.717 0 0 1-1.712 1.712z" fill="#fff"/></svg></span></a><a class="the_champ_button_buffer" href="https://buffer.com/add?url=https%3A%2F%2Fgreenrobot.org%2F&title=greenrobot%20Open%20Source%20Libraries" title="Buffer" rel="nofollow noopener" target="_blank" style="font-size:24px!important;box-shadow:none;display:inline-block;vertical-align:middle"><span class="the_champ_square_count the_champ_buffer_count" style="visibility:visible;">1</span><span class="the_champ_svg the_champ_s__default the_champ_s_buffer" style="background-color:#000;width:36px;height:36px;display:inline-block;opacity:1;float:left;font-size:24px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box"><svg style="display:block;" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="-4 -4 38 39"><path stroke="#fff" class="the_champ_svg_stroke" d="M 15 6 l -10 5 l 10 5 l 10 -5 z" stroke-width="0" fill="#fff"></path><path class="the_champ_svg_stroke the_champ_no_fill" stroke="#fff" d="M 5.5 14.5 l 9.5 5 l 9.5 -5 m -19 4 l 9.5 5 l 9.5 -5" stroke-width="2" fill="none"></path></svg></span></a><a class="the_champ_button_xing" href="https://www.xing.com/spi/shares/new?cb=0&url=https%3A%2F%2Fgreenrobot.org%2F" title="xing" rel="nofollow noopener" target="_blank" style="font-size:24px!important;box-shadow:none;display:inline-block;vertical-align:middle"><span class="the_champ_square_count the_champ_xing_count"> </span><span class="the_champ_svg the_champ_s__default the_champ_s_xing" style="background-color:#00797d;width:36px;height:36px;display:inline-block;opacity:1;float:left;font-size:24px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box"><svg style="display:block;" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="-6 -6 42 42"><path d="M 6 9 h 5 l 4 4 l -5 7 h -5 l 5 -7 z m 15 -4 h 5 l -9 13 l 4 8 h -5 l -4 -8 z" fill="#fff"></path> </svg></span></a><a class="the_champ_button_hacker_news" href="https://news.ycombinator.com/submitlink?u=https%3A%2F%2Fgreenrobot.org%2F&t=greenrobot%20Open%20Source%20Libraries" title="Hacker_News" rel="nofollow noopener" target="_blank" style="font-size:24px!important;box-shadow:none;display:inline-block;vertical-align:middle"><span class="the_champ_square_count the_champ_Hacker_News_count"> </span><span class="the_champ_svg the_champ_s__default the_champ_s_Hacker_News" style="background-color:#00a6db;width:36px;height:36px;display:inline-block;opacity:1;float:left;font-size:24px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box"><svg style="display:block;" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="0 0 32 32"><path fill="#fff" d="M17.275 17.834v7.13h-2.602v-7.182L9 7.035h3.07l2.967 6.115c.365.755.702 1.51.988 2.316.312-.728.65-1.483 1.042-2.29l3.018-6.142H23l-5.725 10.8z"/></svg></span></a><a class="the_champ_email" href="https://greenrobot.org/" onclick="event.preventDefault();window.open('mailto:?subject=' + decodeURIComponent('greenrobot%20Open%20Source%20Libraries').replace('&', '%26') + '&body=' + decodeURIComponent('https%3A%2F%2Fgreenrobot.org%2F'), '_blank')" title="Email" rel="nofollow noopener" style="font-size:24px!important;box-shadow:none;display:inline-block;vertical-align:middle"><span class="the_champ_square_count the_champ_email_count"> </span><span class="the_champ_svg" style="background-color:#649a3f;width:36px;height:36px;display:inline-block;opacity:1;float:left;font-size:24px;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box"><svg style="display:block;" focusable="false" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" viewBox="-4 -4 43 43"><path d="M 5.5 11 h 23 v 1 l -11 6 l -11 -6 v -1 m 0 2 l 11 6 l 11 -6 v 11 h -22 v -11" stroke-width="1" fill="#fff"></path></svg></span></a><a class="the_champ_more" title="More" rel="nofollow noopener" style="font-size:24px!important;border:0;box-shadow:none;display:inline-block!important;font-size:16px;padding:0 4px;vertical-align: middle;display:inline;" href="https://greenrobot.org/" onclick="event.preventDefault()"><span class="the_champ_square_count"> </span><span class="the_champ_svg" style="background-color:#ee8e2d;width:36px;height:36px;display:inline-block!important;opacity:1;float:left;font-size:32px!important;box-shadow:none;display:inline-block;font-size:16px;padding:0 4px;vertical-align:middle;display:inline;background-repeat:repeat;overflow:hidden;padding:0;cursor:pointer;box-sizing:content-box;" onclick="theChampMoreSharingPopup(this, 'https://greenrobot.org/', 'greenrobot%20Open%20Source%20Libraries', '' )"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="-.3 0 32 32" version="1.1" width="100%" height="100%" style="display:block;" xml:space="preserve"><g><path fill="#fff" d="M18 14V8h-4v6H8v4h6v6h4v-6h6v-4h-6z" fill-rule="evenodd"></path></g></svg></span></a></div></div><div style='clear:both'></div> </div><!-- .entry-content --> </div> </article><!-- #post-832 --> </div><!-- #content .site-content --> </div><!-- #primary .content-area --> </div><!-- .full-container --> </div><!-- #main .site-main --> <footer id="colophon" class="site-footer" role="contentinfo"> <div id="footer-widgets" class="full-container"> <aside id="text-3" class="widget widget_text"> <div class="textwidget"><p>greenrobot Open Source Libraries: <a href="https://github.com/greenrobot/EventBus">EventBus</a>, <a href="https://github.com/greenrobot/greenDAO">greenDAO</a>, greenrobot Common. <span class="ILfuVd"><span class="hgKElc">©</span></span> Copyright 2020 greenrobot. All rights reserved. <a href="/impressum/">Impressum</a></p> </div> </aside> </div><!-- #footer-widgets --> </footer><!-- #colophon .site-footer --> </div><!-- #page-wrapper --> <script nitro-exclude> var heartbeatData = new FormData(); heartbeatData.append('nitroHeartbeat', '1'); fetch(location.href, {method: 'POST', body: heartbeatData, credentials: 'omit'}); </script> <script nitro-exclude> document.cookie = 'nitroCachedPage=' + (!window.NITROPACK_STATE ? '0' : '1') + '; path=/; SameSite=Lax'; </script><a href="#" id="scroll-to-top" class="scroll-to-top" title="Back To Top"><span class="vantage-icon-arrow-up"></span></a><script type='text/javascript'>( $ => { /** * Displays toast message from storage, it is used when the user is redirected after login */ if ( window.sessionStorage ) { $( window ).on( 'tcb_after_dom_ready', () => { const message = sessionStorage.getItem( 'tcb_toast_message' ); if ( message ) { tcbToast( sessionStorage.getItem( 'tcb_toast_message' ), false ); sessionStorage.removeItem( 'tcb_toast_message' ); } } ); } /** * Displays toast message * * @param {string} message - message to display * @param {Boolean} error - whether the message is an error or not * @param {Function} callback - callback function to be called after the message is closed */ function tcbToast( message, error, callback ) { /* Also allow "message" objects */ if ( typeof message !== 'string' ) { message = message.message || message.error || message.success; } if ( ! error ) { error = false; } TCB_Front.notificationElement.toggle( message, error ? 'error' : 'success', callback ); } } )( typeof ThriveGlobal === 'undefined' ? jQuery : ThriveGlobal.$j ); </script><style type="text/css" id="tve_notification_styles"></style> <div class="tvd-toast tve-fe-message" style="display: none"> <div class="tve-toast-message tve-success-message"> <div class="tve-toast-icon-container"> <span class="tve_tick thrv-svg-icon"></span> </div> <div class="tve-toast-message-container"></div> </div> </div><div data-position="bottom" data-tl-type="ribbon" class="tl-state-root tve-leads-ribbon tve-trigger-hide tve-tl-anim tve-leads-track-ribbon-23 tl-anim-slide_bot"><div class="tl-style" id="tve_eight_set" data-state="23" data-form-state=""><style type="text/css" class="tve_custom_style">[data-tve-custom-colour="15081407"]:hover{background-image: linear-gradient(rgb(127,205,85) 0%,rgb(0,191,201) 100%) !important;border-color: rgb(153,153,153) !important;}[data-tve-custom-colour="15081407"]{background-image: linear-gradient(rgb(239,0,219) 0%,rgb(244,119,36) 100%) !important;color: rgb(255,255,255) !important;text-shadow: rgba(0,0,0,0) 0px 1px 0px !important;box-shadow: rgba(0,0,0,0) 0px 3px 3px 1px !important;border-color: rgb(153,153,153) !important;}</style><div class="tve-leads-conversion-object" data-tl-type="ribbon"><div class="tve_flt"><div id="tve_editor" class="tve_shortcode_editor"><style type="text/css">#wpadminbar{z-index:999992 !important}</style><div class="thrv-ribbon tve_no_drag tve_no_icons tve_element_hover thrv_wrapper tve_eight_set tve_white"><div class="tve-ribbon-content tve_editor_main_content tve_empty_dropzone" style="max-width: 1170px;"><div class="thrv_wrapper thrv_columns tve_clearfix" style="margin-top: 0;margin-bottom: 0;"><div class="tve_colm tve_tth tve_empty_dropzone" "=""><div class="thrv_wrapper thrv_heading"><h5 class="" style="color: #252525; font-size: 18px;margin-top: 25px;margin-bottom: 0;"><font color="#1c81a5"></font></h5></div><div class="thrv_paste_content thrv_wrapper tve_empty_dropzone"><div class="thrv_wrapper thrv_heading"><h5 class="">Sign up for <font><font color="#7bc542">greenrobot news</font></font> here. <span class="tve_custom_font_size" style="font-size: 12px;">No spam, just fresh developer news once in a while.</span></h5></div></div></div><div class="tve_colm tve_oth tve_lst tve_empty_dropzone"><div class="thrv_wrapper thrv_lead_generation tve_clearfix thrv_lead_generation_horizontal tve_blue tve_2" data-inputs-count="2" data-tve-style="1" style="margin-top: 11px; margin-bottom: 0;"><div class="thrv_lead_generation_code" style="display: none;"></div> <input type="hidden" class="tve-lg-err-msg" value="{"email":"Please enter a valid email address","phone":"Please enter a valid phone number","required":"Name and Email fields are required","password":"Please enter a password","passwordmismatch":"The passwords do not match"}"><div class="thrv_lead_generation_container tve_clearfix"><div class="tve_lead_generated_inputs_container tve_clearfix"><div class="tve_lead_fields_overlay"></div><div class=" tve_lg_input_container tve_lg_2 tve_lg_input"> <input type="text" data-placeholder="" value="" name="email" placeholder="Email Address"></div><div class="tve_lg_input_container tve_submit_container tve_lg_2 tve_lg_submit"> <button type="Submit" data-tve-custom-colour="15081407">Sign Up</button></div></div></div></div></div></div></div> <a href="javascript:void(0)" class="tve-ribbon-close" title="Close">x</a></div></div></div></div></div></div> <style type="text/css" media="all" id="siteorigin-panels-layouts-footer">/* Layout w578375fd5d579 */ #pgc-w578375fd5d579-0-0 { width:100%;width:calc(100% - ( 0 * 30px ) ) } #pg-w578375fd5d579-0 , #pl-w578375fd5d579 .so-panel:last-of-type { margin-bottom:0px } #pl-w578375fd5d579 .so-panel { margin-bottom:35px } #pg-w578375fd5d579-0> .panel-row-style { background-color:#7fcd55;padding:0px } #panel-w578375fd5d579-0-0-0> .panel-widget-style { background-color:#ffffff;padding:0px } @media (max-width:780px){ #pg-w578375fd5d579-0.panel-no-style, #pg-w578375fd5d579-0.panel-has-style > .panel-row-style, #pg-w578375fd5d579-0 { -webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column } #pg-w578375fd5d579-0 > .panel-grid-cell , #pg-w578375fd5d579-0 > .panel-row-style > .panel-grid-cell { width:100%;margin-right:0 } #pl-w578375fd5d579 .panel-grid-cell { padding:0 } #pl-w578375fd5d579 .panel-grid .panel-grid-cell-empty { display:none } #pl-w578375fd5d579 .panel-grid .panel-grid-cell-mobile-last { margin-bottom:0px } } /* Layout w57a0f54c820f2 */ #pgc-w57a0f54c820f2-0-0 , #pgc-w57a0f54c820f2-0-1 , #pgc-w57a0f54c820f2-0-2 , #pgc-w57a0f54c820f2-0-3 { width:25%;width:calc(25% - ( 0.75 * 30px ) ) } #pg-w57a0f54c820f2-0 , #pl-w57a0f54c820f2 .so-panel:last-of-type { margin-bottom:0px } #pl-w57a0f54c820f2 .so-panel { margin-bottom:35px } #pg-w57a0f54c820f2-0> .panel-row-style { background-color:#ffffff;margin-top:0px } #panel-w57a0f54c820f2-0-0-1> .panel-widget-style , #panel-w57a0f54c820f2-0-1-1> .panel-widget-style , #panel-w57a0f54c820f2-0-2-1> .panel-widget-style , #panel-w57a0f54c820f2-0-3-1> .panel-widget-style { margin-top:-20px } @media (max-width:780px){ #pg-w57a0f54c820f2-0.panel-no-style, #pg-w57a0f54c820f2-0.panel-has-style > .panel-row-style, #pg-w57a0f54c820f2-0 { -webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column } #pg-w57a0f54c820f2-0 > .panel-grid-cell , #pg-w57a0f54c820f2-0 > .panel-row-style > .panel-grid-cell { width:100%;margin-right:0 } #pgc-w57a0f54c820f2-0-0 , #pgc-w57a0f54c820f2-0-1 , #pgc-w57a0f54c820f2-0-2 { margin-bottom:30px } #pl-w57a0f54c820f2 .panel-grid-cell { padding:0 } #pl-w57a0f54c820f2 .panel-grid .panel-grid-cell-empty { display:none } #pl-w57a0f54c820f2 .panel-grid .panel-grid-cell-mobile-last { margin-bottom:0px } } /* Layout w577f9b938c6c1 */ #pgc-w577f9b938c6c1-0-0 { width:100%;width:calc(100% - ( 0 * 30px ) ) } #pg-w577f9b938c6c1-0 , #pl-w577f9b938c6c1 .so-panel:last-of-type { margin-bottom:0px } #pl-w577f9b938c6c1 .so-panel { margin-bottom:35px } @media (max-width:780px){ #pg-w577f9b938c6c1-0.panel-no-style, #pg-w577f9b938c6c1-0.panel-has-style > .panel-row-style, #pg-w577f9b938c6c1-0 { -webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column } #pg-w577f9b938c6c1-0 > .panel-grid-cell , #pg-w577f9b938c6c1-0 > .panel-row-style > .panel-grid-cell { width:100%;margin-right:0 } #pl-w577f9b938c6c1 .panel-grid-cell { padding:0 } #pl-w577f9b938c6c1 .panel-grid .panel-grid-cell-empty { display:none } #pl-w577f9b938c6c1 .panel-grid .panel-grid-cell-mobile-last { margin-bottom:0px } } /* Layout w5f4e1aedae5e9 */ #pgc-w5f4e1aedae5e9-0-0 { width:61.8034%;width:calc(61.8034% - ( 0.381966007908 * 100px ) ) } #pgc-w5f4e1aedae5e9-0-1 { width:38.1966%;width:calc(38.1966% - ( 0.618033992092 * 100px ) ) } #pg-w5f4e1aedae5e9-0 , #pl-w5f4e1aedae5e9 .so-panel:last-of-type { margin-bottom:0px } #pl-w5f4e1aedae5e9 .so-panel { margin-bottom:35px } @media (max-width:780px){ #pg-w5f4e1aedae5e9-0.panel-no-style, #pg-w5f4e1aedae5e9-0.panel-has-style > .panel-row-style, #pg-w5f4e1aedae5e9-0 { -webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column } #pg-w5f4e1aedae5e9-0 > .panel-grid-cell , #pg-w5f4e1aedae5e9-0 > .panel-row-style > .panel-grid-cell { width:100%;margin-right:0 } #pgc-w5f4e1aedae5e9-0-0 { margin-bottom:30px } #pl-w5f4e1aedae5e9 .panel-grid-cell { padding:0 } #pl-w5f4e1aedae5e9 .panel-grid .panel-grid-cell-empty { display:none } #pl-w5f4e1aedae5e9 .panel-grid .panel-grid-cell-mobile-last { margin-bottom:0px } } </style> <div id="fb-root"></div> <link rel='stylesheet' id='metaslider-flex-slider-css' href='https://greenrobot.org/wordpress/wp-content/plugins/ml-slider/assets/sliders/flexslider/flexslider.css?ver=3.33.0' type='text/css' media='all' property='stylesheet' /> <link rel='stylesheet' id='metaslider-public-css' href='https://greenrobot.org/wordpress/wp-content/plugins/ml-slider/assets/metaslider/public.css?ver=3.33.0' type='text/css' media='all' property='stylesheet' /> <link rel='stylesheet' id='sow-image-default-c67d20f9f743-css' href='https://greenrobot.org/wordpress/wp-content/uploads/siteorigin-widgets/sow-image-default-c67d20f9f743.css?ver=6.0.9' type='text/css' media='all' /> <script type='text/javascript' id='toc-front-js-extra'> /* <![CDATA[ */ var tocplus = {"visibility_show":"show","visibility_hide":"hide","width":"Auto"}; /* ]]> */ </script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/table-of-contents-plus/front.min.js?ver=2302' id='toc-front-js'></script> <script type='text/javascript' src='//greenrobot.org/wordpress/wp-content/plugins/thrive-leads/js/frontend.min.js?ver=3.20.2' id='tve_leads_frontend-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/acf-dynamic-elements.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_acf-dynamic-elements-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/audio.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_audio-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/carousel-libs.min.js?ver=3.22.2' id='carousel-libs-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/carousel.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_carousel-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/contact-form-compat.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_contact-form-compat-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/content-reveal.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_content-reveal-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/countdown.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_countdown-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/conditional-display.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_conditional-display-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/search-form.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_search-form-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/dropdown.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_dropdown-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/divider.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_divider-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-includes/js/plupload/plupload.min.js?ver=2.1.9' id='plupload-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/file-upload.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_file-upload-js'></script> <script type='text/javascript' src='https://accounts.google.com/gsi/client?ver=3.22.2' id='google-client-js'></script> <script type='text/javascript' src='https://apis.google.com/js/api.js?ver=3.22.2' id='google-api-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/avatar-picker.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_avatar-picker-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/fill-counter.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_fill-counter-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/number-counter.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_number-counter-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/image-gallery-libs.min.js?ver=3.22.2' id='image-gallery-libs-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/image-gallery.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_image-gallery-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/lead-generation.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_lead-generation-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/login.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_login-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/menu.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_menu-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/number-counter-compat.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_number-counter-compat-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/post-grid-compat.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_post-grid-compat-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/pagination.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_pagination-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/post-list.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_post-list-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/post-list-filter.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_post-list-filter-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/pricing-table.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_pricing-table-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/progress-bar.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_progress-bar-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/social-share.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_social-share-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/table.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_table-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/tabs.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_tabs-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/timer.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_timer-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/toc.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_toc-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/toggle.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_toggle-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/twitter.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_twitter-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/user-profile.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_user-profile-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/video.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_video-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/google-api.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_google-api-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/facebook-api.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_facebook-api-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/tcb/editor/js/dist/modules/modal.min.js?v=3.22.2&ver=3.22.2' id='tve_frontend_modal-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/themes/vantage/js/jquery.flexslider.min.js?ver=2.1' id='jquery-flexslider-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/themes/vantage/js/jquery.touchSwipe.min.js?ver=1.6.6' id='jquery-touchswipe-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/themes/vantage/js/jquery.theme-main.min.js?ver=2.6' id='vantage-main-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/so-widgets-bundle/js/lib/jquery.fitvids.min.js?ver=1.1' id='jquery-fitvids-js'></script> <script type='text/javascript' id='tve-dash-frontend-js-extra'> /* <![CDATA[ */ var tve_dash_front = {"ajaxurl":"https:\/\/greenrobot.org\/wordpress\/wp-admin\/admin-ajax.php","force_ajax_send":"1","is_crawler":"","recaptcha":[],"post_id":"832"}; /* ]]> */ </script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/thrive-leads/thrive-dashboard/js/dist/frontend.min.js?ver=3.35.2' id='tve-dash-frontend-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/super-socializer/js/front/social_login/general.js?ver=7.13.55' id='the_champ_ss_general_scripts-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/super-socializer/js/front/facebook/sdk.js?ver=7.13.55' id='the_champ_fb_sdk-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/super-socializer/js/front/facebook/commenting.js?ver=7.13.55' id='the_champ_fb_commenting-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/super-socializer/js/front/sharing/sharing.js?ver=7.13.55' id='the_champ_share_counts-js'></script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/ml-slider/assets/sliders/flexslider/jquery.flexslider.min.js?ver=3.33.0' id='metaslider-flex-slider-js'></script> <script type='text/javascript' id='metaslider-flex-slider-js-after'> var metaslider_816 = function($) {$('#metaslider_816').addClass('flexslider'); $('#metaslider_816').flexslider({ slideshowSpeed:3000, animation:"fade", controlNav:false, directionNav:false, pauseOnHover:true, direction:"horizontal", reverse:false, keyboard:false, animationSpeed:1000, prevText:"<", nextText:">", fadeFirstSlide:false, slideshow:true }); $(document).trigger('metaslider/initialized', '#metaslider_816'); }; var timer_metaslider_816 = function() { var slider = !window.jQuery ? window.setTimeout(timer_metaslider_816, 100) : !jQuery.isReady ? window.setTimeout(timer_metaslider_816, 1) : metaslider_816(window.jQuery); }; timer_metaslider_816(); </script> <script type='text/javascript' id='siteorigin-panels-front-styles-js-extra'> /* <![CDATA[ */ var panelsStyles = {"fullContainer":"#main","stretchRows":"1"}; /* ]]> */ </script> <script type='text/javascript' src='https://greenrobot.org/wordpress/wp-content/plugins/siteorigin-panels/js/styling.min.js?ver=2.25.0' id='siteorigin-panels-front-styles-js'></script> <script type="text/javascript">var tcb_current_post_lists=JSON.parse('[]'); var tcb_post_lists=tcb_post_lists?[...tcb_post_lists,...tcb_current_post_lists]:tcb_current_post_lists;</script><script type="text/javascript">/*<![CDATA[*/if ( !window.TL_Const ) {var TL_Const={"security":"7191f16615","ajax_url":"https:\/\/greenrobot.org\/wordpress\/wp-admin\/admin-ajax.php","forms":{"ribbon":{"_key":"23","form_name":"ob-News-colourful","trigger":"time","trigger_config":{"s":"1","exi":""},"form_type_id":2470,"main_group_id":2469,"main_group_name":"stickyBottom-obNews","active_test_id":"","active_test_data":[]}},"action_conversion":"tve_leads_ajax_conversion","action_impression":"tve_leads_ajax_impression","ajax_load":0,"main_group_id":2469,"display_options":{"allowed_post_types":[],"flag_url_match":null},"custom_post_data":[],"current_screen":{"screen_type":1,"screen_id":0},"ignored_fields":["email","_captcha_size","_captcha_theme","_captcha_type","_submit_option","_use_captcha","g-recaptcha-response","__tcb_lg_fc","__tcb_lg_msg","_state","_form_type","_error_message_option","_back_url","_submit_option","url","_asset_group","_asset_option","mailchimp_optin","tcb_token","tve_labels","tve_mapping","_api_custom_fields","_sendParams","_autofill"]};} else { window.TL_Front && TL_Front.extendConst && TL_Front.extendConst({"security":"7191f16615","ajax_url":"https:\/\/greenrobot.org\/wordpress\/wp-admin\/admin-ajax.php","forms":{"ribbon":{"_key":"23","form_name":"ob-News-colourful","trigger":"time","trigger_config":{"s":"1","exi":""},"form_type_id":2470,"main_group_id":2469,"main_group_name":"stickyBottom-obNews","active_test_id":"","active_test_data":[]}},"action_conversion":"tve_leads_ajax_conversion","action_impression":"tve_leads_ajax_impression","ajax_load":0,"main_group_id":2469,"display_options":{"allowed_post_types":[],"flag_url_match":null},"custom_post_data":[],"current_screen":{"screen_type":1,"screen_id":0},"ignored_fields":["email","_captcha_size","_captcha_theme","_captcha_type","_submit_option","_use_captcha","g-recaptcha-response","__tcb_lg_fc","__tcb_lg_msg","_state","_form_type","_error_message_option","_back_url","_submit_option","url","_asset_group","_asset_option","mailchimp_optin","tcb_token","tve_labels","tve_mapping","_api_custom_fields","_sendParams","_autofill"]})} /*]]> */</script><script type="text/javascript">var TL_Front = TL_Front || {}; TL_Front.impressions_data = TL_Front.impressions_data || {};TL_Front.impressions_data.ribbon = {"group_id":2469,"form_type_id":2470,"variation_key":"23","active_test_id":0,"output_js":true};</script><script type="text/javascript"> (function ($) { $(function () { var event_data = {"form_id":"tve-leads-track-ribbon-23","form_type":"ribbon"}, _ms = parseInt(1000), event_triggered = false; event_data.source = 'time'; setTimeout(function () { if (!event_triggered) { ThriveGlobal.$j(TL_Front).trigger('showform.thriveleads', event_data); event_triggered = true; } }, _ms); }); }) (ThriveGlobal.$j); </script><script type="text/javascript">document.body.className = document.body.className.replace("siteorigin-panels-before-js","");</script> </body> </html>