Do your mobile business apps require large amounts of data? Is the complexity of "offline" causing you to lose sleep? Come and learn "4 Best Practices," and their supporting patterns, for dealing with the synchronization of large data volumes in mobile apps built with OutSystems. In addition, we will discuss how to avoid the problems that can pop up whenever dealing with these kinds of applications.
Sync or swim: the challenge of complex offline appsOutSystems
Video: https://www.outsystems.com/learn/courses/56/webinar-the-challenge-of-complex-offline-apps/
The requirement is usually stated in very simple terms: deliver an app that is available in all connectivity conditions. However, the solution can be anything but simple.
When data management rears its ugly head, things get really tricky fast..How are you going to synchronize that data?
Conflicts will most definitely occur and the strategy to approach them depends on how clever your implementation is.
There is no silver bullet! But we can help you think it through. If you were on hand when we showed you how to discover some of the most common sync patterns and techniques, you got a preview.
Make no mistake, though: we're going beyond the common and we're delving deep. So, if you weren’t around for Create Your Offline App, no worries - we’ll get you fully up to speed. We're not going to feed you for a day, we're here to teach you how to fish!
In this webinar you will:
- Review some of the common sync patterns OutSystems handles.
- Understand how the synchronization process happens in the background.
- Learn how to translate offline-first thinking into development best practices.
- Learn how to implement a more advanced sync scenario.
Free Online training: https://www.outsystems.com/learn/courses/
Follow us on Twitter http://www.twitter.com/OutSystemsDev
Like us on Facebook http://www.Facebook.com/OutSystemsDev
Using Processes and Timers for Long-Running Asynchronous TasksOutSystems
What do you do when a task can take more than five minutes and then times out? How do you run it asynchronously and present the status to the user? Come and see how processes and timers can be used together.
You want to use tenants? No problem. Just make the module Multi-tenant.
Not so fast. First, you need to create the tenants. But where?
Ah-ha! You create them in Service Center.
Ok, but now, how do you access the new tenant to create users?
#mindblown
Join us as we answer those questions, look at the data model behind the Multi-tenant mechanism, and explore different ways a new Tenant can be created.
Creating web pages that work perfectly regardless of external variables (e.g., latency) is equal parts technical know-how and art-form. In this “hands-on” session, we will take a look at how OutSystems can help you build responsively smooth, and beautiful web pages that work as good as they look.
Training Webinar: Detect Performance Bottlenecks of ApplicationsOutSystems
In this webinar we look at how to detect and troubleshoot server-side performance bottlenecks.
Free Online training: https://www.outsystems.com/learn/courses/
Follow us on Twitter http://www.twitter.com/OutSystemsDev
Like us on Facebook http://www.Facebook.com/OutSystemsDev
OutSystems Tricks & Tips for Complex UI IntegrationsOutSystems
The “Citizen Developer” usability of OutSystems means that most tasks on the platform are pretty straightforward and simple if you A. Know what you’re trying to do and B. Know where to look for it. But there are some things you simply can’t solve with the platform’s built-in widgets. Come and get some of the best tips and tricks you’ll find for getting OutSystems to do (just about) anything you want.
OutSystems Webinar - Building a Live Style GuideDaniel Reis
Over the past year, we have been creating, with great results, Live Style Guide with some customers. As such, we would like to share with you, our approach for creating an industry standard called Style Guides, through a free, in-depth technical webinar titled “Building a Live Style Guide”.
In this webinar:
- What is a Live Style Guide?
- Recommendations
- Building a Live Style Guide
Sync or swim: the challenge of complex offline appsOutSystems
Video: https://www.outsystems.com/learn/courses/56/webinar-the-challenge-of-complex-offline-apps/
The requirement is usually stated in very simple terms: deliver an app that is available in all connectivity conditions. However, the solution can be anything but simple.
When data management rears its ugly head, things get really tricky fast..How are you going to synchronize that data?
Conflicts will most definitely occur and the strategy to approach them depends on how clever your implementation is.
There is no silver bullet! But we can help you think it through. If you were on hand when we showed you how to discover some of the most common sync patterns and techniques, you got a preview.
Make no mistake, though: we're going beyond the common and we're delving deep. So, if you weren’t around for Create Your Offline App, no worries - we’ll get you fully up to speed. We're not going to feed you for a day, we're here to teach you how to fish!
In this webinar you will:
- Review some of the common sync patterns OutSystems handles.
- Understand how the synchronization process happens in the background.
- Learn how to translate offline-first thinking into development best practices.
- Learn how to implement a more advanced sync scenario.
Free Online training: https://www.outsystems.com/learn/courses/
Follow us on Twitter http://www.twitter.com/OutSystemsDev
Like us on Facebook http://www.Facebook.com/OutSystemsDev
Using Processes and Timers for Long-Running Asynchronous TasksOutSystems
What do you do when a task can take more than five minutes and then times out? How do you run it asynchronously and present the status to the user? Come and see how processes and timers can be used together.
You want to use tenants? No problem. Just make the module Multi-tenant.
Not so fast. First, you need to create the tenants. But where?
Ah-ha! You create them in Service Center.
Ok, but now, how do you access the new tenant to create users?
#mindblown
Join us as we answer those questions, look at the data model behind the Multi-tenant mechanism, and explore different ways a new Tenant can be created.
Creating web pages that work perfectly regardless of external variables (e.g., latency) is equal parts technical know-how and art-form. In this “hands-on” session, we will take a look at how OutSystems can help you build responsively smooth, and beautiful web pages that work as good as they look.
Training Webinar: Detect Performance Bottlenecks of ApplicationsOutSystems
In this webinar we look at how to detect and troubleshoot server-side performance bottlenecks.
Free Online training: https://www.outsystems.com/learn/courses/
Follow us on Twitter http://www.twitter.com/OutSystemsDev
Like us on Facebook http://www.Facebook.com/OutSystemsDev
OutSystems Tricks & Tips for Complex UI IntegrationsOutSystems
The “Citizen Developer” usability of OutSystems means that most tasks on the platform are pretty straightforward and simple if you A. Know what you’re trying to do and B. Know where to look for it. But there are some things you simply can’t solve with the platform’s built-in widgets. Come and get some of the best tips and tricks you’ll find for getting OutSystems to do (just about) anything you want.
OutSystems Webinar - Building a Live Style GuideDaniel Reis
Over the past year, we have been creating, with great results, Live Style Guide with some customers. As such, we would like to share with you, our approach for creating an industry standard called Style Guides, through a free, in-depth technical webinar titled “Building a Live Style Guide”.
In this webinar:
- What is a Live Style Guide?
- Recommendations
- Building a Live Style Guide
Are you using the best architecture? Want to know how to make sure you are architecting things properly? Interested to learn where the new library features fit in? Come to this session to learn more.
Excited about the new reactive web features? Come to this session to learn some of the best practices to make sure that you get started on the right foot.
When setting up a new project we have some tips and tricks to help you do this in the best way possible, incl. infrastructure, database, standard attributes, logging, code alignment, and service center.
Multi-tenancy is part of the OutSystems platform for a long time but has not often been used.
In this session, Tiago will first explain what multi-tenancy exactly is. But very fast, we'll leave the theoretical aspect and dive into the practice. No better way to learn than from real-life cases. You'll get insight on when to use - and perhaps when not to use - the built-in mechanism and tip and trick to avoid pitfalls.
Training Webinar: Fitting OutSystems applications into Enterprise ArchitectureOutSystems
Want to become an expert architect in 60 minutes?
We're having a quick hands-on session to show how to design evergreen applications that will grow with your company strategy - from initial design to keeping the blueprint of your applications healthy as you need to adapt to new business demands
In this session you will learn:
- The 4 Layer Canvas concepts - the OutSystems architecture framework
- How to use the the Canvas to design a new solution
- How to use Discovery (tool available in the Forge) to keep track of your architecture and extract useful recommendations to fix architecture issues
Free Online training: https://www.outsystems.com/learn/courses/
Follow us on Twitter http://www.twitter.com/OutSystemsDev
Like us on Facebook http://www.Facebook.com/OutSystemsDev
Training Webinar: Top front-end techniques for OutSystemsOutSystems
How do front-developers that have started testing or working with OutSystems generally view the Platform, before they get to fully harness its power? They usually say it's more restrictive than they're used to and that it doesn't allow them to do what they need to do.
Fear no more! We're here to debunk that myth and show you that behind all its nuances, OutSystems has a truly powerful Platform that can enable you to build pretty much anything.
In this webinar, you will:
- Slay a dragon named "You can't do that with OutSystems!"
- Understand (some of) the inner workings of the Platform.
- Get some tips on how to organize your front-end code in a better way.
- Learn how you can become much more productive doing front-end work with OutSystems.
- Become an awesome front-end developer.
It's all up to you, but we're giving you all the tools!
Free Online training: https://www.outsystems.com/learn/courses/
Follow us on Twitter http://www.twitter.com/OutSystemsDev
Like us on Facebook http://www.Facebook.com/OutSystemsDev
Reports, reports, reports! People always want more reports. This session will show you how you can create amazing reports in OutSystems from Simple Report (free) to External Tools (integrating with paid tools).Covering since HTML2PDF&ReportSystems, SimpleReports and StimulSoftJS.
Training Webinars - Secret hacks for OutSystems 10OutSystems
OutSystems Wizard Stacey Levine will unveil the "Secret Hacks for OutSystems 10" that will make you love the platform. This webinar will focus on the features and accelerators that make hardcore development a breeze.
Free Online training: https://www.outsystems.com/learn/courses/
Follow us on Twitter http://www.twitter.com/OutSystemsDev
Like us on Facebook http://www.Facebook.com/OutSystemsDev
Learn the fundamental concepts and differences between JavaScript and TypeScript to understand the comparison between the two scripting languages.
For More Information: https://www.albiorixtech.com/blog/typescript-vs-javascript/
CSS workshop created for internal delivery @ OutSystems.
“For most people CSS is like a mystical art that nobody truly understands... Sometimes it works and sometimes it doesn’t (unexplainably) “.
Not solely introductory, but also covering more advanced topics, embark in this fantastic adventure that is CSS.
There you have it, all you must know about CSS in a NutShell.
See the videos of the workshop @ http://goo.gl/NJ3n6J
Workshop created by Marco Costa, Miguel Ventura and Rúben Gonçalves
Using Processes and Timers for Long-Running Asynchronous TasksOutSystems
Running Asynchronous Tasks can be useful in the right situations, and sometimes the environment you’re working in requires it. Understanding how Processes and Timers are used in OutSystems can be extremely useful, particularly for long-running tasks. Come and get a first-hand look at creating and running Asynchronous Tasks and they could improve your apps’ performance.
Did you know OutSystems enables you to use JavaScript to costumize how users interact with your applications? In this session, see how we've developed and extended patterns over the years and learn the best practices you can follow.
Link with resources: https://bit.ly/2F8P29j
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystemsOutSystems
In 2001, the Agile Manifesto took the world by storm, and it changed how software is built forever. Also in 2001, OutSystems, another disruptive force in the world of traditional waterfall software development, was born.
Not coincidentally, OutSystems has been using Agile Practices all along. However, because of the sheer speed at which we’re able to respond, we’ve had to come up with a few twists in our approach. We’re even putting it into a services delivery playbook.
In our webinar, “By the (Play)Book: The Agile Practice at OutSystems,” Engagement Guild Master and Expert Nuno Fernandes will show you how OutSystems approaches Agile Development and makes sure nothing slips.
In this session you will:
- Learn roles and respective responsibilities.
- Understand project phases with a clear focus on sprint development.
- Discover how we approach the user story life cycle in particular.
- See how a really solid structure, calendar and organization help maximize productivity.
Webinar: https://www.outsystems.com/learn/courses/59/webinar-the-agile-practice-at-outsystems/
Free Online training: https://www.outsystems.com/learn/courses/
Follow us on Twitter http://www.twitter.com/OutSystemsDev
Like us on Facebook http://www.Facebook.com/OutSystemsDev
Achieve Your State Missions with Better DataSafe Software
State and provincial governments are working with more data than ever. With emerging technologies and accelerating changes, adopting an innovative mindset and a data culture has become imperative. Government organizations are implementing enterprise integration strategies to improve operational efficiency, increase situational awareness and better serve citizens.
Attend this webinar to find out how FME can help you achieve missions for your state or province with connected, trusted, and valuable data. We will walk through a range of business cases and use cases for enterprise data integration. Through customer stories and live demos, we will explore tips for overcoming common data challenges using FME, such as creating statewide databases, pushing data to open data portals for public access, and feeding data to dashboards for situation awareness.
Are you using the best architecture? Want to know how to make sure you are architecting things properly? Interested to learn where the new library features fit in? Come to this session to learn more.
Excited about the new reactive web features? Come to this session to learn some of the best practices to make sure that you get started on the right foot.
When setting up a new project we have some tips and tricks to help you do this in the best way possible, incl. infrastructure, database, standard attributes, logging, code alignment, and service center.
Multi-tenancy is part of the OutSystems platform for a long time but has not often been used.
In this session, Tiago will first explain what multi-tenancy exactly is. But very fast, we'll leave the theoretical aspect and dive into the practice. No better way to learn than from real-life cases. You'll get insight on when to use - and perhaps when not to use - the built-in mechanism and tip and trick to avoid pitfalls.
Training Webinar: Fitting OutSystems applications into Enterprise ArchitectureOutSystems
Want to become an expert architect in 60 minutes?
We're having a quick hands-on session to show how to design evergreen applications that will grow with your company strategy - from initial design to keeping the blueprint of your applications healthy as you need to adapt to new business demands
In this session you will learn:
- The 4 Layer Canvas concepts - the OutSystems architecture framework
- How to use the the Canvas to design a new solution
- How to use Discovery (tool available in the Forge) to keep track of your architecture and extract useful recommendations to fix architecture issues
Free Online training: https://www.outsystems.com/learn/courses/
Follow us on Twitter http://www.twitter.com/OutSystemsDev
Like us on Facebook http://www.Facebook.com/OutSystemsDev
Training Webinar: Top front-end techniques for OutSystemsOutSystems
How do front-developers that have started testing or working with OutSystems generally view the Platform, before they get to fully harness its power? They usually say it's more restrictive than they're used to and that it doesn't allow them to do what they need to do.
Fear no more! We're here to debunk that myth and show you that behind all its nuances, OutSystems has a truly powerful Platform that can enable you to build pretty much anything.
In this webinar, you will:
- Slay a dragon named "You can't do that with OutSystems!"
- Understand (some of) the inner workings of the Platform.
- Get some tips on how to organize your front-end code in a better way.
- Learn how you can become much more productive doing front-end work with OutSystems.
- Become an awesome front-end developer.
It's all up to you, but we're giving you all the tools!
Free Online training: https://www.outsystems.com/learn/courses/
Follow us on Twitter http://www.twitter.com/OutSystemsDev
Like us on Facebook http://www.Facebook.com/OutSystemsDev
Reports, reports, reports! People always want more reports. This session will show you how you can create amazing reports in OutSystems from Simple Report (free) to External Tools (integrating with paid tools).Covering since HTML2PDF&ReportSystems, SimpleReports and StimulSoftJS.
Training Webinars - Secret hacks for OutSystems 10OutSystems
OutSystems Wizard Stacey Levine will unveil the "Secret Hacks for OutSystems 10" that will make you love the platform. This webinar will focus on the features and accelerators that make hardcore development a breeze.
Free Online training: https://www.outsystems.com/learn/courses/
Follow us on Twitter http://www.twitter.com/OutSystemsDev
Like us on Facebook http://www.Facebook.com/OutSystemsDev
Learn the fundamental concepts and differences between JavaScript and TypeScript to understand the comparison between the two scripting languages.
For More Information: https://www.albiorixtech.com/blog/typescript-vs-javascript/
CSS workshop created for internal delivery @ OutSystems.
“For most people CSS is like a mystical art that nobody truly understands... Sometimes it works and sometimes it doesn’t (unexplainably) “.
Not solely introductory, but also covering more advanced topics, embark in this fantastic adventure that is CSS.
There you have it, all you must know about CSS in a NutShell.
See the videos of the workshop @ http://goo.gl/NJ3n6J
Workshop created by Marco Costa, Miguel Ventura and Rúben Gonçalves
Using Processes and Timers for Long-Running Asynchronous TasksOutSystems
Running Asynchronous Tasks can be useful in the right situations, and sometimes the environment you’re working in requires it. Understanding how Processes and Timers are used in OutSystems can be extremely useful, particularly for long-running tasks. Come and get a first-hand look at creating and running Asynchronous Tasks and they could improve your apps’ performance.
Did you know OutSystems enables you to use JavaScript to costumize how users interact with your applications? In this session, see how we've developed and extended patterns over the years and learn the best practices you can follow.
Link with resources: https://bit.ly/2F8P29j
Technical Webinar: By the (Play) Book: The Agile Practice at OutSystemsOutSystems
In 2001, the Agile Manifesto took the world by storm, and it changed how software is built forever. Also in 2001, OutSystems, another disruptive force in the world of traditional waterfall software development, was born.
Not coincidentally, OutSystems has been using Agile Practices all along. However, because of the sheer speed at which we’re able to respond, we’ve had to come up with a few twists in our approach. We’re even putting it into a services delivery playbook.
In our webinar, “By the (Play)Book: The Agile Practice at OutSystems,” Engagement Guild Master and Expert Nuno Fernandes will show you how OutSystems approaches Agile Development and makes sure nothing slips.
In this session you will:
- Learn roles and respective responsibilities.
- Understand project phases with a clear focus on sprint development.
- Discover how we approach the user story life cycle in particular.
- See how a really solid structure, calendar and organization help maximize productivity.
Webinar: https://www.outsystems.com/learn/courses/59/webinar-the-agile-practice-at-outsystems/
Free Online training: https://www.outsystems.com/learn/courses/
Follow us on Twitter http://www.twitter.com/OutSystemsDev
Like us on Facebook http://www.Facebook.com/OutSystemsDev
Achieve Your State Missions with Better DataSafe Software
State and provincial governments are working with more data than ever. With emerging technologies and accelerating changes, adopting an innovative mindset and a data culture has become imperative. Government organizations are implementing enterprise integration strategies to improve operational efficiency, increase situational awareness and better serve citizens.
Attend this webinar to find out how FME can help you achieve missions for your state or province with connected, trusted, and valuable data. We will walk through a range of business cases and use cases for enterprise data integration. Through customer stories and live demos, we will explore tips for overcoming common data challenges using FME, such as creating statewide databases, pushing data to open data portals for public access, and feeding data to dashboards for situation awareness.
Enhance mobile app testing with performance-centric strategies: SauceCon 2022NITHIN S.S
In mobile app spaces, with all these evolving technologies and competitors, performance plays an important role in terms of delivering a seamless end-user experience. Improving performance has become the top priority for all global mobile app companies, as it directly impacts user experience, retention rates, conversions, and ultimately revenue.
Even if we deliver a brilliant feature, if there are performance issues people will eventually stop using those apps. As high-performing apps are user favorites, we testers should also adopt performance-centric strategies while testing mobile apps.
In this talk, you will learn about:
- Basic types of mobile apps
- An overview of important performance metrics to consider
- Basics and importance of mobile app performance testing with trends and parameters
- Factors to consider while evaluating an app’s performance & ideas to prepare a performance-oriented testing strategy
- Best practices and tools to consider for providing valuable insights to stakeholders
- Quick glance at the rise of 5G and its impact in the mobile app space
[TTT Meetup] Enhance mobile app testing with performance-centric strategies (...NITHIN S.S
In mobile app spaces, with all these evolving technologies and competitors, 𝗽𝗲𝗿𝗳𝗼𝗿𝗺𝗮𝗻𝗰𝗲 plays an important role in terms of delivering a seamless end-user experience. Improving performance has become the top priority for all global mobile app companies as it directly impacts user experience, retention rates, conversions, and ultimately revenue. Even if we deliver a brilliant feature with performance issues, people will eventually stop using those apps. As high-performing apps are user favourites, we testers should also adopt performance-centric strategies while testing mobile apps.
In this talk, you will learn about:
Basic types of mobile apps.
An overview of important performance metrics to consider.
Basics and importance of mobile app performance testing with trends and parameters.
Factors to consider while evaluating an app’s performance & ideas to prepare a performance-oriented testing strategy.
Best practices and tools to consider for providing valuable insights to stakeholders.
Quick glance at the rise of 5G and its impact in the mobile app space.
"Going Offline", one of the hottest mobile app trendsDerek Baron
One of the hottest trends in mobile is "going offline", yet organizations are faced with a tripling of time and cost when adding offline functionality to a business app. According to Forrester Research, the ability to work offline is "the most important and difficult mobile feature...and will be a consideration for nearly every modern application".
redpill Mobile Case Study (Salvation Army)Peter Presnell
Case study that summarizes key findings by Red Pill Development as they built a mobile interface for Notes applications at Salvation Army. Using asymmetric modernization a mobile interface can be delivered for an entire portfolio of applications in a few days.
For more details on contextual apps visit: http://emberify.com/blog
Using the sensors in the mobile phone, developers can build enriched apps. The simple lifecycle of Sense, Understand and Adapt can be implemented in an app using simple APIs. What sets contextual apps apart from other mobile apps is their ability to figure out your needs and anticipate your interests. . Apps like Google Now, Tempo, Sherpa, Sunrise and Cortana use a contextual lifecycle to predict habits and interests. Using APIs to access the GPS, accelerometer, social networks, Gyroscope and other information from the device developers can easily create context aware.
Mobile Workloads are unpredictable event based making it well suited for leveraging serverless technologies to build server-side components of mobile applications There have been repeatable patterns emerging for serverless paradigm involving mobile backend as seen from the customer usecases This session talks about these emerging patterns and the architectures to support such patterns It showcases how these patterns can be realized using Open Whisk Mobile backend Watson IOT platform Object Storage and other components on IBM Bluemix. Pattern 1 Mobile app as a process controller – With the proliferation of IOT there has been various scenarios where mobile apps control the process and sensor monitor various aspects of the process For example A logistic company which transports perishable food products employs sensors in transport trucks in order to detect environment temperature variations which is critical to its business The transport company and manufacturer will be notified through their mobile app if there is any significant temperature humidity changes so that action can be taken to prevent any damages The mobile app offers alternate routes The authorized person can approve or decline route changes He can even approve the delivery of goods to a nearby warehouseretailer instead This is notified to the driver who performs the delivery. Taking a step further the logistic company wants to analyze the data both from sensors and mobile app to see if there is a correlation pattern between the temperature changes and number of alternate route approvals that have taken place in order to cancel certain routes which have had reoccurring issues. Pattern 2 – Process Triggers upon uploads download through mobile image file etc. Triggering business processes based on uploads downloads from mobile is another key pattern which is well suited to be implemented using serverless For example – An enterprise allows employees to submit their claims using mobile app The employee logs in creates a reimbursement request and then uploads the image of the bills This process is instantaneous and claims submission is just a click away rather than a time consuming process HeShe is notified once the reimbursement request is accepted and processed Employees also fill timesheets everyday but needs to update to the server once a week In order to conserve bandwidth the company wants the timesheet sync to happen only once a week. Pattern 3 – Mobile Notification on events of interest. The most common pattern is the notification upon events of interest For example An industrial washing machine runs the cycle when the citys grid is least loaded based on past grid status and weather conditions and send notification upon completion. Based on external temperature and weather conditions tune the thermostat of all the buildings in the area and notify the building administrator.
In these slides, we explore the unique challenges that mobile data present. The high cardinality, low signal to noise ratio and realtime needs have significant system implications. We outline how InMobi tackles these challenges. A specific Data Science use case is also presented. We outline our approach to user segmentation. A brief description of the challenges faced and our attempts to address them is also included.
Data Con LA 2018 - Enabling real-time exploration and analytics at scale at H...Data Con LA
Enabling real-time exploration and analytics at scale to drive operational intelligence at Hulu by Indrasis Mondal, Director, Data Engineering and Data Products, Hulu
Data is one of most powerful assets for companies today and a key driver for innovation, product development and business efficiency. Operational intelligence allows modern organization to use that data asset in real-time to enable immediate insights to their business operations and allow rapid decision making for strategic advantage. In this presentation we will walk through the operational intelligence capabilities Hulu has built to process tens of millions of events per minute to enable fast exploration of data and real-time decision making .
8 Ways Utility Networks Can Meet Data DemandsSafe Software
Having a data integration plan is crucial for a successful distribution network, whether it’s for electrical, natural gas, or water utilities. Automated integration processes can preserve data quality, save time, and make information access effortless for everyone.
In this webinar, we’ll showcase 8 ways real utility organizations are using FME to integrate and deliver information for tasks like:
Asset management
Emergency and risk management
Design and planning
Ensuring data quality
Migrating data to other systems (ie. Esri Utility Network)
UAV data collection and AR data visualization
By automatically keeping systems and information up-to-date, you can gain significant time and cost savings, and enable actionable decision-making.
Innovating at the Speed of Business in the High-Bandwidth World of Digital MediaOutSystems
At NOS, the term “IT Driven” refers to IT activities as adding value to the business. That drove the use of low-code to speed up the delivery of critical projects their business needed. Hear how this leading telecommunications company grew through its relationship with OutSystems and evolved its processes into a bimodal IT approach to implement continuous delivery and provide app delivery roadmaps that benefits its customers and users.
Beyond “Location”: Informing Real-Estate Decisions Through Innovative TechnologyOutSystems
Beyond “Location”: Informing Real-Estate Decisions Through Innovative Technology
Colliers International is on a mission to empower its customers with innovative technology to help them make informed decisions. In this session, see how the company addressed modernization challenges, rewrote a mission-critical application, replaced much of its legacy technology, and produced more applications in the last two years than it had in the last decade.
Beyond Digital Transformation: A Mandate for Disruptive Innovation in the Age...OutSystems
Before a customer ever sees your product, there are hundreds of processes, tools, decisions, and people that impact its delivery. Learn more about how the CVS Health business, swift, implemented the transformative power of low-code to create a wave of disruptive innovation that has impacted every aspect of its business and has the potential to redefine its industry.
From Core Systems to Mobile Apps: Digital Transformation from the Inside-OutOutSystems
When Chilean telecom leader, Entel, launched its digital transformation project, it followed the guidance of experts: Start with your core and work outwards. With its core modernized, the company released a new mobile app in less than a year. Hear how the company’s focus on core systems first, allowed it to layer on innovative new services helping it become not just a leader in Chile, but a challenger in the Peruvian market as well.
Orchestrating the Art of the Impossible Using Low-Code to Automate Manual Wor...OutSystems
Task and process automation is often praised as the holy grail of cutting costs and maximizing profitability. But what about less tangible activities such as compliance and auditing? Join Standard Insurance Company and hear how OutSystems helped them automate and minimize manual work steps resulting in across-the-board efficiencies that saved time and money.
Fast and Furious: Modernizing Clinical ApplicationOutSystems
Twice, Mednax has attempted to modernize its legacy clinical app. After the most recent 6-year project was canceled prior to deployment, Mednax turned to OutSystems. In just five months, the company rolled out an MVP and in eight months the new Clinical Application went live. Hear this amazing success story that is helping to reduce the burden on providers and deliver better patient care where it matters most.
Enrich Visually Google Map Information With LayersOutSystems
In this lightning session, we will explain that maps should not be boring! With our KML for Google Maps component, we have enriched them visually and with real-time business information to provide maps for users to love.
"With OutSystems, we can publish our application with the click of a single button. How awesome would it be if we could create an entire OutSystems infrastructure with just one click?
This is possible! In this session, we will tell you all the secrets about unattended installation and/or upgrading the OutSystems platform."
Many OutSystems projects begin simply. The requirements are not complex and therefore, neither is the architecture. But, as implementations grow, so grows the complexity and functionality needs of the enterprise. In this session, we will explore the 4-Layer Architecture and show you what we encountered, and learned, moving from a simple architecture to a 4-Layer one.
Speed up Development by Turning Web Blocks Into First-Class CitizensOutSystems
"What if:
- You could have a 2-way sync between a (structure) variable and a we block (e.g. input widgets)
- There was a valid runtime property for web blocks (e.g. built-in widgets)
- Web block behaved LIKE built-in widgets?
In this talk, we will present an approach, and a couple of tools, that help promote web blocks to first class citizens. It has helped us speed up development and improve maintainability. Maybe it will also be helpful to you."
Sometimes we want our UI to respond to external events. With the power of Google's Firebase, we can interact with those events in OutSystems to build extremely powerful and interactive applications
After five years, "Company X's" HR application was not performing very well due to legacy issues. Simply loading the Dashboard could take up to 10 minutes. We will share some tricks we used to make sure the Dashboard could be properly used again.
No API? No Problem! Let the Robot Do Your Work! Web Scraping and Automation W...OutSystems
Considering how popular APIs are these days, it’s frustrating to run into a service or site without one. But, it’s actually quite common. If you need to collect data or perform an action on the web without access to an API, there are a couple ways you can hack it using OutSystems.
Measure Customer Experience of Your OutSystems Web and Mobile ApplicationsOutSystems
Want to measure customer experience of your OutSystems web and mobile applications? It’s easy. Just add 3rd party instrumentation from New Relic or Dynatrace to your OutSystems application to begin to visualize the customer experience of your applications in real-time. It’s a snap to get started using brand new Forge components; start optimizing customer experience in minutes!
Link Users to Your Specific Page in a Mobile App With DeeplinksOutSystems
This session will show you how to use weblinks that directly open your OutSystems mobile app on that one specific page or otherwise redirect towards the correct app store depending on the device. This helps you or your users to promote your app or a specific profile page. Mobile deeplinks are explained and taken to the next level.
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
A Comprehensive Look at Generative AI in Retail App Testing.pdfkalichargn70th171
Traditional software testing methods are being challenged in retail, where customer expectations and technological advancements continually shape the landscape. Enter generative AI—a transformative subset of artificial intelligence technologies poised to revolutionize software testing.
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar
The European Union Agency for Law Enforcement Cooperation (Europol) has suffered an alleged data breach after a notorious threat actor claimed to have exfiltrated data from its systems. Infamous data leaker IntelBroker posted on the even more infamous BreachForums hacking forum, saying that Europol suffered a data breach this month.
The alleged breach affected Europol agencies CCSE, EC3, Europol Platform for Experts, Law Enforcement Forum, and SIRIUS. Infiltration of these entities can disrupt ongoing investigations and compromise sensitive intelligence shared among international law enforcement agencies.
However, this is neither the first nor the last activity of IntekBroker. We have compiled for you what happened in the last few days. To track such hacker activities on dark web sources like hacker forums, private Telegram channels, and other hidden platforms where cyber threats often originate, you can check SOCRadar’s Dark Web News.
Stay Informed on Threat Actors’ Activity on the Dark Web with SOCRadar!
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Anthony Dahanne
Les Buildpacks existent depuis plus de 10 ans ! D’abord, ils étaient utilisés pour détecter et construire une application avant de la déployer sur certains PaaS. Ensuite, nous avons pu créer des images Docker (OCI) avec leur dernière génération, les Cloud Native Buildpacks (CNCF en incubation). Sont-ils une bonne alternative au Dockerfile ? Que sont les buildpacks Paketo ? Quelles communautés les soutiennent et comment ?
Venez le découvrir lors de cette session ignite
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
Even though at surface level ‘java.lang.OutOfMemoryError’ appears as one single error; underlyingly there are 9 types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
Into the Box Keynote Day 2: Unveiling amazing updates and announcements for modern CFML developers! Get ready for exciting releases and updates on Ortus tools and products. Stay tuned for cutting-edge innovations designed to boost your productivity.
How Recreation Management Software Can Streamline Your Operations.pptxwottaspaceseo
Recreation management software streamlines operations by automating key tasks such as scheduling, registration, and payment processing, reducing manual workload and errors. It provides centralized management of facilities, classes, and events, ensuring efficient resource allocation and facility usage. The software offers user-friendly online portals for easy access to bookings and program information, enhancing customer experience. Real-time reporting and data analytics deliver insights into attendance and preferences, aiding in strategic decision-making. Additionally, effective communication tools keep participants and staff informed with timely updates. Overall, recreation management software enhances efficiency, improves service delivery, and boosts customer satisfaction.
top nidhi software solution freedownloadvrstrong314
This presentation emphasizes the importance of data security and legal compliance for Nidhi companies in India. It highlights how online Nidhi software solutions, like Vector Nidhi Software, offer advanced features tailored to these needs. Key aspects include encryption, access controls, and audit trails to ensure data security. The software complies with regulatory guidelines from the MCA and RBI and adheres to Nidhi Rules, 2014. With customizable, user-friendly interfaces and real-time features, these Nidhi software solutions enhance efficiency, support growth, and provide exceptional member services. The presentation concludes with contact information for further inquiries.
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteGoogle
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-pilot-review/
AI Pilot Review: Key Features
✅Deploy AI expert bots in Any Niche With Just A Click
✅With one keyword, generate complete funnels, websites, landing pages, and more.
✅More than 85 AI features are included in the AI pilot.
✅No setup or configuration; use your voice (like Siri) to do whatever you want.
✅You Can Use AI Pilot To Create your version of AI Pilot And Charge People For It…
✅ZERO Manual Work With AI Pilot. Never write, Design, Or Code Again.
✅ZERO Limits On Features Or Usages
✅Use Our AI-powered Traffic To Get Hundreds Of Customers
✅No Complicated Setup: Get Up And Running In 2 Minutes
✅99.99% Up-Time Guaranteed
✅30 Days Money-Back Guarantee
✅ZERO Upfront Cost
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
Large Language Models and the End of ProgrammingMatt Welsh
Talk by Matt Welsh at Craft Conference 2024 on the impact that Large Language Models will have on the future of software development. In this talk, I discuss the ways in which LLMs will impact the software industry, from replacing human software developers with AI, to replacing conventional software with models that perform reasoning, computation, and problem-solving.
2. || Mobile Synchronization Patterns for Large Volumes of Data
João Pereira
Developer | Do iT Lean
@
in
joao.pereira@doilean.com
/joão-pedro-martins-pereira-8a115b120
4. | Mobile Synchronization Patterns for Large Volumes of Data
● The Mobile Challenge
● Let’s Recap OutSystems Best Practices
● When We Can’t Follow Best Practices . . .
● Solving the Challenge!
● Patterns in Action
6. | Mobile Synchronization Patterns for Large Volumes of Data
● Mobile Devices are more powerful
than ever
● Mobile apps are faster and more
intuitive than ever
● Users expect your app to perform
like all other apps they use
● How can we do it with OutSystems?
8. | Mobile Synchronization Patterns for Large Volumes of Data
1. Lightweight Local Database
● Design the local storage data model using only the attributes
that you need
● Transform the local data model to avoid complex queries like
having multiple JOINS
● Identify the best data synchronization patterns for your use case
and define exactly when to run them
9. | Mobile Synchronization Patterns for Large Volumes of Data
1.1. Lightweight Local Database Example
Server DB Local DB
10. | Mobile Synchronization Patterns for Large Volumes of Data
2. Control the Amount of Synchronized Data
● We can control the data fetched from the server using:
■ Sync Unit
■ Local Sync Properties
■ Only get the latest data from the server
■ Only get the data that we really need
11. | Mobile Synchronization Patterns for Large Volumes of Data
3. SyncUnit - Defining Synchronization Moments
12. | Mobile Synchronization Patterns for Large Volumes of Data
Makes a sync when the add button is Clicked
4. Use the TriggerOfflineDataSync
Synchronize Data in the Background Without Freezing the UI
13. | Mobile Synchronization Patterns for Large Volumes of Data
5. Avoid Multiple Server Requests
On Client Actions Consolidate Server Requests into one Action
Client Server
14. | Mobile Synchronization Patterns for Large Volumes of Data
● Evaluate network requirements use cases
■ Define Local Storage strategy
■ Optimize data sync moments
● Evaluate network status in runtime
■ Adapt behavior accordingly
■ Let the user know what’s happening
6. Control the Network Status
15. | Mobile Synchronization Patterns for Large Volumes of Data
● Corporate vs Public App
● Multiple types of devices
● Different operating systems (Android, iOS)
7. Fined Tune Data Transfers
16. || Mobile Synchronization Patterns for Large Volumes of Data
When We Can’t Follow
Best Practices . . .
17. | Mobile Synchronization Patterns for Large Volumes of Data
1. Mobile App = Web Version
● Client Demands:
■ Must have same functionality in web and mobile
■ The Mobile App is not going to be built based on
mobile specific use cases but on the web
application
● Developer Challenge
■ Must adapt the best practices to support this
situation
19. | Mobile Synchronization Patterns for Large Volumes of Data
● Cannot Create a Lightweight Device
Database
■ Requiring JOIN’s will influence performance of the
app
■ Must find ways to overcome this limitation in
terms of Sync Moments
■ Analyze the use-cases the application needs
■ Minimize sync of tables that have a high volume of
data
■ Minimize using data that have multiple joins on
Mobile App Screens
2. All Data Must Be on the Mobile App
22. | Mobile Synchronization Patterns for Large Volumes of Data
● Case A - Infrequent Change
■ Treat like static data
■ Synchronize all in the first use of the
application
■ Sync only when the data changes
■ Inside of the Mobile App only sync the
tables & data that is really needed
1. Understanding Your Data
23. | Mobile Synchronization Patterns for Large Volumes of Data
● Case B - Frequent Change
■ Like in the previous case - sync all data in first use
■ On Local to Server, only sync the modified data
■ Syncing Modified Data - Depending on the use-
case, choose one of these scenarios
■ Last Write Wins
■ Server Always Win
■ Conflict Mechanism
■ Discard mechanism to prevent inconsistent data if
sync processes went wrong
1. Understanding Your Data
24. | Mobile Synchronization Patterns for Large Volumes of Data
● SyncUnit
■ Create a static entity with the tables we
need to sync
● Create a Sync Unit History
■ Keep track of tables that need sync
■ Last date the data was changed
2. Build Your Sync Mechanism
26. | Mobile Synchronization Patterns for Large Volumes of Data
● Use case – Need to have 3000 records available at the start of the
application:
■ First Use Sync Strategy – Sync all the data - must guaranty the network is 3G or
superior
■ When the tables get changed just synchronize the ones that changed
■ Sync only the data that is needed to execute the functionality that is needed on
the Mobile App
Real World Example
27. | Mobile Synchronization Patterns for Large Volumes of Data
● Create the SyncUnitHistory Record
■ Will be created on the CRUD – Create or
Update Actions of the tables we want to
sync
■ This table will have SyncUnitId and the Last
Updated Date
■ Used to know the date of the last changed
record of a table that we will need to sync
How to know when and what needs to be Synced?
28. | Mobile Synchronization Patterns for Large Volumes of Data
● Get SyncUnits To Sync:
■ Action to check which SyncUnits need
to be refreshed on your mobile app
■ Receives the Device Date and returns
the list of ids of the tables that need
to be sync
■ The action is used in the mobile
synchronization action
How to know what tables we need to Sync ?
29. | Mobile Synchronization Patterns for Large Volumes of Data
● Create a Control of Sync in Local Storage:
■ Sync controller in the local storage
■ This will kept track of the tables that already have
been synced and when it was done
Client-Side LastSync Controller
30. | Mobile Synchronization Patterns for Large Volumes of Data
Example - MaterialType table
Table with large volume of data
31. | Mobile Synchronization Patterns for Large Volumes of Data
● Sync of Material Type :
■ Get the Material-Types that are present on
the server
■ In the first time will get all
■ Next time is filter by date from, date to and
only the active ones
■ LocaleId is passed because app is
multilingual
■ As output we get the Server Material Types
and the total records
1. Create Sync Material-Type action
32. | Mobile Synchronization Patterns for Large Volumes of Data
● Sync of Material Type client side :
■ Create our Material-Type Local Storage;
■ Last Sync table to get the interval of time the
date will be get
■ Updates the controller for the sync unit
Material-Type
2. Action on client side to fill Material-Type local table
33. | Mobile Synchronization Patterns for Large Volumes of Data
● OfflineDataSync Action :
■ Sync the Local Data into the Server
■ If no errors occur, we start the sync of the
large volume of data tables
■ Sync the tables with less volume of data
3. Mobile synchronization process
34. | Mobile Synchronization Patterns for Large Volumes of Data
● Sync_LC_Check Action :
■ Check’s our connection because we
need to have network
■ Get SyncUnits to update list to
check which tables need to be sync
■ Update the sync controller Last Sync
and run the action Sync_LC_Update
4. Trigger and know which tables we going to Sync
35. | Mobile Synchronization Patterns for Large Volumes of Data
● Sync_LC_Update Action :
■ This action will receive as input the
SyncUnit and only update the
respective table
5. Action that Syncs the large volume of data tables
37. | Mobile Synchronization Patterns for Large Volumes of Data
● Use Case:
■ When multiple users can change the same
data and the mobile app can be used offline
■ You need a mechanism to determine which
data is conflicting
■ You need a screen so the user can choose the
correct data
How to Create a Conflict Screen on Your Mobile App
38. | Mobile Synchronization Patterns for Large Volumes of Data
● Solution:
■ Create a Static Table with the Entities name that we want to make conflict
detection and resolution
■ Then use that static entity and create one local entity that will keep the table
name and a flag if exist conflict
■ When we try to sync or update the local record into the server we need to check
if a conflict exists
■ If a conflict exists create an entry on the table of conflicts and add a record to
the list
How to Create a Conflict Screen on Your Mobile App
40. | Mobile Synchronization Patterns for Large Volumes of Data
● Conflict Resolution:
■ After click on the list the Conflict
Element’s will appear
■ Local & Server record are serialize &
deserialize into a JSON
■ Screen less heavy and with better
performance
■ Can be optimized to choose attribute
by attribute instead of record
2. Conflict Screen on Mobile App to Compare Data
My name is João Pereira
Last year I was in your place
So im so glad to be making this presentation
The Mobile Challenge
Let’s Recap OutSystems Best Practices
When We Can’t Follow Best Practices . . .
Solving the Challenge!
Patterns in Action
Mobile Devices are more powerful than ever
Mobile apps are faster and more intuitive than ever
Users expect your app to perform like all other apps they use
How can we do it with OutSystems
Design the local storage data model using only the attributes that you need, instead of all attributes of the corresponding server entity. Consider denormalizing the local data model to avoid complex queries like having multiple JOINS.
Identify the best data synchronization patterns for your use case and define exactly when to run them.
To explain better the OutSystems Best Practice I created a small DB and a concept of an App that got the objective of having a platform where clients find car dealers which have cars in stock;
The car dealers can add cars to his stock
The clients can search by car dealer or model they want to buy
Process of denormalization
Simplify the connection between tables and minimize the amount of information
We can control the data fetched from the server using;
Sync Unit –several flows of synchornization
Local Sync Properties – Create a local entity to keep track of the last synchronization moment
Only get the latest data from the server – Compare the LastSycnOn from that sync unit with the CreatedOn, UpdatedOn and DeletedOn attributes from the server DB to know which records to fetch
This image represents the third best practice using the sync unit to define the moments we want to sync our DB between local and server
As you can see we define 3 moments
1. Get New Stock – On the Menu of the application the user clicks on a buttons or slides and refresh the list of car with the more recent
2. Remove sold cars , when a Car dealer changes the status of the car to available to sold
3. When the Owner of car dealers add new Change the image to more general information ;
TriggerOfflineDataSync – explanation
Devemos antecipar qual a informação que o utilizador precisa antes da mesma ser utilizada para assim obter uma fluidez dentro da aplicação
As you know each server action called inside cliente actions executes a request to the server so if we call several server actions inside cliente action that will leave to open and close multiple requests in the same action that is going to be less performance that use like the exemple above one server action inside a cliente actions.
Is visible that in that server action know it’s no problem use more than one
This need to be applied to normal client actions of the app as well to our synchronization actions that will get and sync all the information we need
Evaluate network requirements and use cases - If the application needs to be online or offline
To evaluate the data sync moments
Adapt behavior according to network strength, including offline
Check how long we got to do the sync actions
The moments we must sync all the information of the app.
#############################################################
Evaluate network requirements use cases
Define Local Storage strategy
Optimize data sync moments
Evaluate network status in runtime
Adapt behavior accordingly
Let the user know what’s happening
Find the Optimal Value of Records to BULK Create According to the Different Processing Capabilities of Each Device
Talk about 2 diferente scenarios – 1 . Corporate Use , 2. Target is the world
B – B
B – E
After I recap you some of the OutSystems Best Pratices I will show you that they don’t work for every situation and that sometimes we cannot use them
Must have same functionalities in web and mobile;
The Data model cannot suffer the changes we want to have a lightweight database on the mobile app;
The Mobile App is not going to be built base on the specific use cases but on the Web App
We need to adapt the best practices the best we can on this situation
When you ever
Put the boss with the tie photo
Have JOIN’s that will influence the performance of the application;
Must think ways to overcome this limitation in terms of Sync Moments and how to do it;
Analyze with are the use-cases the application needs
Try to minimize sync of tables that got a high volume of data . Find strategies to sync the information the minimum times possible
In the Mobile App Screens minimize the data that have multiple joins . So if we need the data that have multiple joins try to use only that information on the mobile screen
How did you solve it ? In this part of the presentation we are going to show how to overcome the difficulties when we can’t use the best practices and have a huge database to manage in the local storage and need to sync a huge flow of data between Web and Mobile
In the case of not changes frequently;
Take care of this tables like lookup;
Just need be synchronize all in the first use of the application;
When this tables get changes just synchronize the ones that real change and not all
Sync only the data that is neded to execute all the functionalities that are really need on the mobile AppCase A - Infrequent Change
Treat like static data
Synchronize all in the first use of the application
Sync only when the data changes
Inside of the Mobile App only sync the tables & data that is really needed
Like in the previous case in the first use we need to sync all the tables;
When modified the data only sync the modified back to the server;
Choose well what information we want to override choosing one of this scenarios (Last Write Wins, Server always Win or Conflict Mechanism Detection)
If we don’t have a good network, we must have a mechanism that discard a sync that was not fully completed in order to not have inconsistent data in our application
Create a Sync Unit History
Keep track of tables that need sync
Last date the data was changed
SyncUnit
Create a static entity with the tables we need to sync
Patterns in Action – I’m going to present you the real cases scenarios we use some strategies like the sync unit as table selector and how we do the sync of a big volume database
In the case of not changes frequently;
Take care of this tables like lookup;
Just need be synchronize all in the first use of the application;
When this tables get changes just synchronize the ones that real change and not all
Sync only the data that is needed to execute all the functionalities that are really need on the mobile App
The data doesn’t change a lot
Inside the Core of the tables we want to sync was created:
Static table called Sync Unit that contain all the tables we want to sync to the mobile app (SyncUnit.Label = MaterialType)
A new table called SyncUnitHistory that will have the static Id from the previous table and the Last Updated Date
The records of the SycnUnitHistory are going to be created on the actions of Created or Updated a entity we want to sync to mobile
Also in the Core module was created a action to see what are the sync units that needs to sync data
This action receives the Device Date and returns the list of id’s of the tables that needs to be sync
Is going to be used on the mobile synchronization action
As we done in the previous step, we create a control sync server table
We need to create a LastSync table at will got the SyncUnit Id and the date from and date to of the Last Sync made on the device
Client actions and server actions created to do the sync:
Was created a new module in the Mobile App to manage the Local Storage and Sync actions to use in the APP
All Local Tables are in this module
Going to present the example to one table Material Type that got a dependency that is Material Type with a List of values, that is called Material Type LOV Dependency
This action will get the Material Types that are present on the server
In the first time will get all but on the next time is filter by date from, date to and only the active ones
Because the application is multilingual, we need to pass the LocaleId we want to get the data
As output we got the Server Material Types and the total records just to control how many data was sync at that time
This an action will create our Material Type that is going to be at the Local Storage
Used the Last Sync table to get the interval of time we are going to get the data
In the end updates the controller for the sync unit Material Type
This action will first check our connection because we need to make sure we got a good connection to sync large volumes of data and we going to use server-side actions
The next step is using our Get SyncUnits to update list to check which tables need to be sync
After get the list we update the sync controller Last Sync and run the action Sync_LC_Update
This action will receive as input the SyncUnit and only update that respective table
Then will run the Sync of Material Type on this case that we talk on the previous slide
When multiple users can change the same data and the mobile app can be used offline
How to create the data of conflict ?
Where we choose the correct data ?
Create a Static Table with the Entities name that we want to make conflict detection and resolution
Then use that static entity and create one local that will keep the table name and a flag if exist conflict
When we try to sync the local record into the server we need to check if a conflict exists
If a conflict exists create an entry on the table of conflicts and add a record to a list
Situation when we can check the conflict:
When we try to save the record if we got internet connection, we can compare with the information that are present in the server at the moment
When we try to sync the local data and put them into the server will check if that records was change
In any of this cases is created a list with the table name and the number of conflicts that exist at that moment
When we click in element of the previous list will appear a detail screen so the user can choose the server data or local data
This data will get the Local record and the Server record and serialize & deserialize then into a JSON
That process will make the screen less heavy and with better performance
Can be optimized to choose attribute by attribute instead of record
#####################################################################################################
I hope you enjoyed this presentation and next time you face this kind of challenge you remember what we talk about today !
I hope you enjoyed this presentation and next time you face this kind of challenge you remember what we talk about today !