This document provides an overview of JSON and APIs for mobile programming. It defines JSON data types like numbers, strings, booleans, arrays and objects. It then explains the concept of APIs including endpoints, parameters, methods and status codes. It demonstrates making API requests from Android apps using the Volley library, including examples of GET requests without data, POST requests with data in the body, and DELETE requests with data in the URL. Code samples are provided for each type of request.
Liferay Mobile SDK has been enabling developers to create native apps backed by Liferay Portal’s power. We’ve been using it in production since 2013 and have noticed many improvement points. We also listened to the community and added new features that will make app development even faster. The new Liferay Mobile SDK for Android brings a lot of new features that boosts apps development. Things from automatic JSON parsing and RxJava compatibility to better code generation are ones of the improvements in this new major release.
The document discusses using Ajax with jQuery to make requests to a server. It provides an overview of Ajax, describes how to make GET and POST requests with jQuery's $.get() and $.getJSON() methods, and gives an example of loading dependent dropdowns by making cascading Ajax calls based on user selection. Key points covered include initializing XHR objects, handling responses, and loading/filtering HTML snippets or JSON data into the DOM.
The Ring programming language version 1.5.2 book - Part 44 of 181Mahmoud Samir Fayed
The Page class contains methods for generating HTML elements and adding them to a page. It includes methods for common elements like headings, paragraphs, links, images, forms, tables, and more. Parameters allow setting attributes like IDs, classes, and styles. The class supports generating entire pages or parts of pages to be rendered on the server or client.
Dapper is an object mapper for ADO.NET that aims to simplify data access and mapping between .NET objects and SQL databases. It provides extension methods for querying and mapping database results to .NET objects with minimal code. Micro ORMs like Dapper, Massive, PetaPoco, and SimpleData aim to simplify data access without requiring complex infrastructure or configuration. They emphasize performance, simplicity and working directly with SQL and database objects.
The NoSQL DB is a database that provides a mechanism for storage and retrieval of data which is modeled in means other than the tabular relations used in relational databases. These databases have speed and high scalability. This kind of database has becoming more popular in several applications, that include financial one. As result of increase the number of user the number of vendors are increasing too, so the current problem how can we avoid lock in? The standard is the answer to solve this problem. Know more about the Diana proposal and the next step to became a NoSQL JSR.
The document discusses different architectural patterns for structuring business logic, including transaction script, active record, domain model, and event sourced domain model. It also covers related topics like layered architecture, testing strategies, programming languages, and choosing the right pattern based on factors like complexity of business logic and data structures. The goal is to select a pattern that best matches the needs of the specific business domain and application.
The document discusses GraphQL and Relay concepts including queries, mutations, fragments, and arguments. It also provides examples of GraphQL queries to fetch user and repository data, including nested and filtered data. Relay concepts like prefetch caching, server data updating, and optimistic updates are briefly mentioned as well.
The document provides an overview of AJAX and web services. It discusses AJAX architecture and how it uses XMLHttpRequest objects to asynchronously exchange data with web servers without reloading pages. It also covers web services, describing them as software modules that can be published, located, and invoked over a network to perform tasks. The key components of web services are defined as SOAP, WSDL, and UDDI, which handle messaging, description, and discovery.
Liferay Mobile SDK has been enabling developers to create native apps backed by Liferay Portal’s power. We’ve been using it in production since 2013 and have noticed many improvement points. We also listened to the community and added new features that will make app development even faster. The new Liferay Mobile SDK for Android brings a lot of new features that boosts apps development. Things from automatic JSON parsing and RxJava compatibility to better code generation are ones of the improvements in this new major release.
The document discusses using Ajax with jQuery to make requests to a server. It provides an overview of Ajax, describes how to make GET and POST requests with jQuery's $.get() and $.getJSON() methods, and gives an example of loading dependent dropdowns by making cascading Ajax calls based on user selection. Key points covered include initializing XHR objects, handling responses, and loading/filtering HTML snippets or JSON data into the DOM.
The Ring programming language version 1.5.2 book - Part 44 of 181Mahmoud Samir Fayed
The Page class contains methods for generating HTML elements and adding them to a page. It includes methods for common elements like headings, paragraphs, links, images, forms, tables, and more. Parameters allow setting attributes like IDs, classes, and styles. The class supports generating entire pages or parts of pages to be rendered on the server or client.
Dapper is an object mapper for ADO.NET that aims to simplify data access and mapping between .NET objects and SQL databases. It provides extension methods for querying and mapping database results to .NET objects with minimal code. Micro ORMs like Dapper, Massive, PetaPoco, and SimpleData aim to simplify data access without requiring complex infrastructure or configuration. They emphasize performance, simplicity and working directly with SQL and database objects.
The NoSQL DB is a database that provides a mechanism for storage and retrieval of data which is modeled in means other than the tabular relations used in relational databases. These databases have speed and high scalability. This kind of database has becoming more popular in several applications, that include financial one. As result of increase the number of user the number of vendors are increasing too, so the current problem how can we avoid lock in? The standard is the answer to solve this problem. Know more about the Diana proposal and the next step to became a NoSQL JSR.
The document discusses different architectural patterns for structuring business logic, including transaction script, active record, domain model, and event sourced domain model. It also covers related topics like layered architecture, testing strategies, programming languages, and choosing the right pattern based on factors like complexity of business logic and data structures. The goal is to select a pattern that best matches the needs of the specific business domain and application.
The document discusses GraphQL and Relay concepts including queries, mutations, fragments, and arguments. It also provides examples of GraphQL queries to fetch user and repository data, including nested and filtered data. Relay concepts like prefetch caching, server data updating, and optimistic updates are briefly mentioned as well.
The document provides an overview of AJAX and web services. It discusses AJAX architecture and how it uses XMLHttpRequest objects to asynchronously exchange data with web servers without reloading pages. It also covers web services, describing them as software modules that can be published, located, and invoked over a network to perform tasks. The key components of web services are defined as SOAP, WSDL, and UDDI, which handle messaging, description, and discovery.
Domain Specific Languages (EclipseCon 2012)Sven Efftinge
This document discusses domain-specific languages and their use in web application development. It describes how a typical web application involves layers like HTTP routing, controllers, templates, domain models, and data access. It then provides examples of different technologies that can be used to implement each layer, like Java Server Pages for templates or JPA for data access. The goal of domain-specific languages is to abstract away complexity and allow developers to focus on the essential aspects of the problem domain.
Introduction to Event Sourcing and CQRS (IASA-IL)Vladik Khononov
Slides for my "Introduction to Event Sourcing and CQRS" session at the IASA-IL meeting.
Abstract:
Event sourcing is a pattern for modeling the application’s business logic. It states that all changes to application state should be defined and stored as a sequence of events.
Its advantages are many:
* Gives freedom to refactor the business logic, allowing better response to new requirements.
* Suitable for building scalable, highly concurrent, distributed systems.
* Stored events give the true history of a system, which is required by law in some industries.
* The system’s state can be reversed to any point in the past for retroactive debugging.
* The required infrastructure is simple - no monstrous databases are involved.
Vladik will also describe CQRS, an architecture that goes hand in hand with Event Sourcing.
A quick overview of CAVE, a managed service for monitoring infrastructure, platform, and application metrics, to provide visibility into your system's performance and operational levels. CAVE is built at GILT, using Scala, Play and Akka.
This presentation lays out the concept of the traditional web, the improvements web 2.0 have brought about, etc.
I have attempted to explain RIA as well.
The main part of this presentation is centered around ajax, its uses, advantages / disadvantages, framework considerations when using ajax, java-script hijacking, etc.
Hopefully it should be a good read as an intro doc to RIA and Ajax.
Presented by Tom Schreiber, Senior Consulting Engineer, MongoDB
MongoDB supports a wide range of indexing options to enable fast querying of your data, but what are the right strategies for your application? In this talk we’ll cover how indexing works, the various indexing options, and cover use cases where each might be useful. We'll dive into common pitfalls using real-world examples to ensure that you're ready for scale. We'll show you the tools and techniques for diagnosing and tuning the performance of your MongoDB deployment. Whether you're running into problems or just want to optimize your performance, these skills will be useful.
Ajax allows for asynchronous retrieval of data from a server in the background without reloading the page. It uses a combination of technologies like XMLHttpRequest, JavaScript, and DOM to make asynchronous calls to a server and update portions of a page without reloading. The document then provides an example of how an Ajax interaction works, from making an asynchronous request to a server to processing the response and updating the HTML DOM.
This document summarizes the author's Scala practices, including using Scala for DSLs, JSON parsing, string interpolation, regular expressions, traits for modeling state machines, and centralized dependency injection with JSON. It also discusses understanding Actor lifecycles in Akka and effectively using Option and Either in Scala code.
This document provides an overview of Hibernate Envers, a Hibernate module that enables easy auditing of persistent classes. It discusses how to activate Envers for an entity class, the different annotations used to configure the audit process, and how to query the audit information stored in revision tables. Envers allows tracking changes to entities and retrieving past versions through an AuditReader interface, with support for filtering, ordering and paging results. It provides an out-of-the-box solution for auditing entity data with Hibernate.
The document provides guidelines for writing clean code with meaningful names, functions, comments, formatting, and error handling. Some key points include: using intention-revealing names, avoiding encodings or abbreviations, keeping functions small and focused, extracting try/catch blocks, preferring exceptions over return codes, writing informative comments, and ensuring good formatting with consistent indentation and vertical spacing.
Security Slicing for Auditing XML, XPath, and SQL Injection VulnerabilitiesLionel Briand
This document discusses security slicing for auditing XML, XPath, and SQL injection vulnerabilities. It presents an approach using taint analysis and system dependence graph construction to extract security-relevant program slices. These slices can then be filtered and chopped to aid security auditing. The approach was evaluated on several test subjects and was shown to significantly reduce the number of slices that need to be examined compared to traditional chopping. Future work areas include handling more complex string operations and integrating with constraint solvers.
This document discusses JSON (JavaScript Object Notation) and its role as a lightweight data interchange format, particularly for use in AJAX applications. It provides an overview of JSON's syntax and design, describing how it represents common data types like strings, numbers, objects, and arrays. It also addresses some criticisms of JSON and potential extensions to make it more flexible.
This document discusses various concepts related to polymorphism in Scala, including:
- Different types of polymorphism like subtyping, parametric polymorphism, and type classes.
- Examples of polymorphism patterns like duck typing, cake patterns, chaining polymorphism, and type constructors.
- How type classes enable retroactive polymorphism and dependency injection through implicit parameters.
The document discusses the history and development of JSON (JavaScript Object Notation). It describes how Douglas Crockford discovered JSON in 2001, developed its specification with a simple one-page website, and then it was adopted widely without much promotion. JSON provided a useful format for browser/server communication and became very popular due to its simplicity, becoming a standard part of JavaScript.
Metrics measure the design of code after it
has been written and: Don’t change rules during the game could be the way how to organize a code review report.
Research Interests:
Source Code Analysis, Source Code Clone Detection, and Static Source Code Analysis
This document describes the steps to convert a database schema into UML classes by dragging database tables and dropping them onto a custom UML editor. The key steps are:
1. Contribute a custom edit policy provider to the GMF editor
2. Install canonical and drag-drop edit policies on the diagram root edit part
3. Prepare a list of objects being dragged and set on the drop request
4. Allow dropped objects in the canonical edit policy
5. Calculate and return the target edit part from the drop location
6. Return the required drag-drop command from the target edit part
7. Execute the drag-drop command to generate UML classes
This is a full immersion in MongoDB, I talk about the MongoDB data model, when referencing and when embedding, how denormalize, how to use the aggregation framework of MongoDB
The document discusses different methods to make software components testable, including:
1. Using the constructor to pass dependencies into the class.
2. Setting dependencies via public setters.
3. Passing dependencies as arguments to methods.
4. Using inheritance and overriding getter methods to mock dependencies for unit tests.
The document analyzes the pros and cons of each approach and recommends using constructor or setter injection along with interfaces for dependencies to follow best practices of object-oriented and interface-oriented design.
This document discusses best practices for developing RESTful APIs. It begins by explaining that APIs should follow REST principles even if others are not, in order to be usable by others. It then shows an example of a non-RESTful API call. The document goes on to explain concepts like RESTful design, HTTP methods, resources, and HATEOAS. It provides examples of good and bad API patterns. It also introduces tools like appkr/fractal that can help build RESTful APIs in Laravel. Overall, the document provides guidance on how to properly structure APIs according to REST architectural principles.
The document summarizes new features in JPA 2.0, including:
1) Standard properties were added to persistence.xml to configure things like locking timeouts and query timeouts.
2) The @AccessType annotation now allows mixed field and property access within an entity, overriding the default at the attribute level.
3) Derived identifiers allow identifiers to be derived from relationships rather than requiring a separate foreign key field.
4) New features were added for collections like @ElementCollection and support for ordering collections with @OrderColumn.
WCF Data Services (formerly known as "ADO.NET Data Services") is a component of the .NET Framework that enables you to create services that use the Open Data Protocol (OData) to expose and consume data over the Web or intranet by using the semantics of representational state transfer (REST). OData exposes data as resources that are addressable by URIs. Data is accessed and changed by using standard HTTP verbs of GET, PUT, POST, and DELETE. OData uses the entity-relationship conventions of the Entity Data Model to expose resources as sets of entities that are related by associations.
Domain Specific Languages (EclipseCon 2012)Sven Efftinge
This document discusses domain-specific languages and their use in web application development. It describes how a typical web application involves layers like HTTP routing, controllers, templates, domain models, and data access. It then provides examples of different technologies that can be used to implement each layer, like Java Server Pages for templates or JPA for data access. The goal of domain-specific languages is to abstract away complexity and allow developers to focus on the essential aspects of the problem domain.
Introduction to Event Sourcing and CQRS (IASA-IL)Vladik Khononov
Slides for my "Introduction to Event Sourcing and CQRS" session at the IASA-IL meeting.
Abstract:
Event sourcing is a pattern for modeling the application’s business logic. It states that all changes to application state should be defined and stored as a sequence of events.
Its advantages are many:
* Gives freedom to refactor the business logic, allowing better response to new requirements.
* Suitable for building scalable, highly concurrent, distributed systems.
* Stored events give the true history of a system, which is required by law in some industries.
* The system’s state can be reversed to any point in the past for retroactive debugging.
* The required infrastructure is simple - no monstrous databases are involved.
Vladik will also describe CQRS, an architecture that goes hand in hand with Event Sourcing.
A quick overview of CAVE, a managed service for monitoring infrastructure, platform, and application metrics, to provide visibility into your system's performance and operational levels. CAVE is built at GILT, using Scala, Play and Akka.
This presentation lays out the concept of the traditional web, the improvements web 2.0 have brought about, etc.
I have attempted to explain RIA as well.
The main part of this presentation is centered around ajax, its uses, advantages / disadvantages, framework considerations when using ajax, java-script hijacking, etc.
Hopefully it should be a good read as an intro doc to RIA and Ajax.
Presented by Tom Schreiber, Senior Consulting Engineer, MongoDB
MongoDB supports a wide range of indexing options to enable fast querying of your data, but what are the right strategies for your application? In this talk we’ll cover how indexing works, the various indexing options, and cover use cases where each might be useful. We'll dive into common pitfalls using real-world examples to ensure that you're ready for scale. We'll show you the tools and techniques for diagnosing and tuning the performance of your MongoDB deployment. Whether you're running into problems or just want to optimize your performance, these skills will be useful.
Ajax allows for asynchronous retrieval of data from a server in the background without reloading the page. It uses a combination of technologies like XMLHttpRequest, JavaScript, and DOM to make asynchronous calls to a server and update portions of a page without reloading. The document then provides an example of how an Ajax interaction works, from making an asynchronous request to a server to processing the response and updating the HTML DOM.
This document summarizes the author's Scala practices, including using Scala for DSLs, JSON parsing, string interpolation, regular expressions, traits for modeling state machines, and centralized dependency injection with JSON. It also discusses understanding Actor lifecycles in Akka and effectively using Option and Either in Scala code.
This document provides an overview of Hibernate Envers, a Hibernate module that enables easy auditing of persistent classes. It discusses how to activate Envers for an entity class, the different annotations used to configure the audit process, and how to query the audit information stored in revision tables. Envers allows tracking changes to entities and retrieving past versions through an AuditReader interface, with support for filtering, ordering and paging results. It provides an out-of-the-box solution for auditing entity data with Hibernate.
The document provides guidelines for writing clean code with meaningful names, functions, comments, formatting, and error handling. Some key points include: using intention-revealing names, avoiding encodings or abbreviations, keeping functions small and focused, extracting try/catch blocks, preferring exceptions over return codes, writing informative comments, and ensuring good formatting with consistent indentation and vertical spacing.
Security Slicing for Auditing XML, XPath, and SQL Injection VulnerabilitiesLionel Briand
This document discusses security slicing for auditing XML, XPath, and SQL injection vulnerabilities. It presents an approach using taint analysis and system dependence graph construction to extract security-relevant program slices. These slices can then be filtered and chopped to aid security auditing. The approach was evaluated on several test subjects and was shown to significantly reduce the number of slices that need to be examined compared to traditional chopping. Future work areas include handling more complex string operations and integrating with constraint solvers.
This document discusses JSON (JavaScript Object Notation) and its role as a lightweight data interchange format, particularly for use in AJAX applications. It provides an overview of JSON's syntax and design, describing how it represents common data types like strings, numbers, objects, and arrays. It also addresses some criticisms of JSON and potential extensions to make it more flexible.
This document discusses various concepts related to polymorphism in Scala, including:
- Different types of polymorphism like subtyping, parametric polymorphism, and type classes.
- Examples of polymorphism patterns like duck typing, cake patterns, chaining polymorphism, and type constructors.
- How type classes enable retroactive polymorphism and dependency injection through implicit parameters.
The document discusses the history and development of JSON (JavaScript Object Notation). It describes how Douglas Crockford discovered JSON in 2001, developed its specification with a simple one-page website, and then it was adopted widely without much promotion. JSON provided a useful format for browser/server communication and became very popular due to its simplicity, becoming a standard part of JavaScript.
Metrics measure the design of code after it
has been written and: Don’t change rules during the game could be the way how to organize a code review report.
Research Interests:
Source Code Analysis, Source Code Clone Detection, and Static Source Code Analysis
This document describes the steps to convert a database schema into UML classes by dragging database tables and dropping them onto a custom UML editor. The key steps are:
1. Contribute a custom edit policy provider to the GMF editor
2. Install canonical and drag-drop edit policies on the diagram root edit part
3. Prepare a list of objects being dragged and set on the drop request
4. Allow dropped objects in the canonical edit policy
5. Calculate and return the target edit part from the drop location
6. Return the required drag-drop command from the target edit part
7. Execute the drag-drop command to generate UML classes
This is a full immersion in MongoDB, I talk about the MongoDB data model, when referencing and when embedding, how denormalize, how to use the aggregation framework of MongoDB
The document discusses different methods to make software components testable, including:
1. Using the constructor to pass dependencies into the class.
2. Setting dependencies via public setters.
3. Passing dependencies as arguments to methods.
4. Using inheritance and overriding getter methods to mock dependencies for unit tests.
The document analyzes the pros and cons of each approach and recommends using constructor or setter injection along with interfaces for dependencies to follow best practices of object-oriented and interface-oriented design.
This document discusses best practices for developing RESTful APIs. It begins by explaining that APIs should follow REST principles even if others are not, in order to be usable by others. It then shows an example of a non-RESTful API call. The document goes on to explain concepts like RESTful design, HTTP methods, resources, and HATEOAS. It provides examples of good and bad API patterns. It also introduces tools like appkr/fractal that can help build RESTful APIs in Laravel. Overall, the document provides guidance on how to properly structure APIs according to REST architectural principles.
The document summarizes new features in JPA 2.0, including:
1) Standard properties were added to persistence.xml to configure things like locking timeouts and query timeouts.
2) The @AccessType annotation now allows mixed field and property access within an entity, overriding the default at the attribute level.
3) Derived identifiers allow identifiers to be derived from relationships rather than requiring a separate foreign key field.
4) New features were added for collections like @ElementCollection and support for ordering collections with @OrderColumn.
WCF Data Services (formerly known as "ADO.NET Data Services") is a component of the .NET Framework that enables you to create services that use the Open Data Protocol (OData) to expose and consume data over the Web or intranet by using the semantics of representational state transfer (REST). OData exposes data as resources that are addressable by URIs. Data is accessed and changed by using standard HTTP verbs of GET, PUT, POST, and DELETE. OData uses the entity-relationship conventions of the Entity Data Model to expose resources as sets of entities that are related by associations.
Применение паттерна Page Object для автоматизации веб сервисов - новый взглядCOMAQA.BY
В данном докладе мы на реальном примере рассмотрим, как можно организовать автоматизацию тестирования вебсервисов с помощью до боли знакомого всем паттерна Page Object. Казалось бы, причем тут он?..
Building a friendly .NET SDK to connect to SpaceMaarten Balliauw
Space is a team tool that integrates chats, meetings, git hosting, automation, and more. It has an HTTP API to integrate third party apps and workflows, but it's massive! And slightly opinionated.
In this session, we will see how we built the .NET SDK for Space, and how we make that massive API more digestible. We will see how we used code generation, and incrementally made the API feel more like a real .NET SDK.
Google apps script database abstraction exposed versionBruce McPherson
This document describes a database abstraction library for Google Apps Script that provides a consistent API for NoSQL databases. It allows code to be reused across different database backends by handling queries, authentication, caching, and more transparently. The library exposes the capabilities through a JSON REST API that can be accessed from other programming languages. It also includes a VBA client library that translates VBA calls into requests to the JSON API, allowing VBA code to access databases in the same way as Google Apps Script.
ADO.NET Entity Framework by Jose A. Blakeley and Michael PizzoHasnain Iqbal
This document provides an overview of the evolution of data access application programming interfaces (APIs) used in Microsoft technologies, including ADO.NET 1.0, LINQ, and the ADO.NET Entity Framework. It discusses the goals and features of each API, how they address challenges in working with data, and how they improved developer productivity. It also describes the architecture and components of the Entity Framework, how it maps object and relational models, and techniques for customizing data mappings.
Ajax is the web's hottest user interface. Struts is Java's most popular web framework. What happens when we put Ajax on Struts?
In this session, we look at writing a new Struts 2 application from square one, using the Yahoo User Interface (YUI) Library on the front end, and Struts 2 on the backend. YUI provides the glitz and the glamour, and Struts 2 provides the dreary business logic, input validation, and text formatting.
During the session, we will cover
* How to integrate an Ajax UI with Struts 2
* Basics of the Yahoo User Interface (YUI) Library
* Business services Struts can provide to an Ajax UI
Who should attend: Ajax developers who would like to utilize Struts as a back-end, and Struts developers who would like to utilize Ajax as a front-end.
To get the most from this session, some familiarity with an Ajax library, like YUI or Dojo, is helpful.
Data access 2.0? Please welcome: Spring Data!Oliver Gierke
Spring Data provides a consistent programming model for data access while retaining store-specific features. It supports common repositories and query languages across relational, document, and graph databases. Spring Data includes sophisticated mapping support, template classes, query methods in repository interfaces, and integration of Querydsl for complex queries. It allows for cross-store persistence while also enabling specialized features like geospatial queries for MongoDB.
Lets look at writing a new Struts 2 application from square one, using the Yahoo User Interface (YUI) Library on the front end, and Struts 2 on the backend. YUI provides the glitz and the glamour, and Struts 2 provides the dreary business logic, input validation, and text formatting.
This document introduces Spring Data, an open source framework that provides a consistent programming model for data access while retaining store-specific features. It supports both relational and non-relational data stores. Spring Data offers mapping support, template classes, and repositories that provide a common interface for querying different data sources. It aims to simplify data access and reduce boilerplate code.
This document discusses various technologies related to Ajax and web services, including:
1. Ajax started as an acronym for Asynchronous JavaScript and XML.
2. It describes common web service protocols like REST and SOAP. REST uses HTTP methods to perform CRUD operations on resources while SOAP uses an XML envelope.
3. It provides an example of using Ajax with a simple Perl script to retrieve the answer to "What is the meaning of life?" stored on a server and display it in the browser.
This document summarizes a presentation about integrating Force.com with Heroku. It discusses calling web services from Force.com applications both synchronously and asynchronously. It also covers calling Force.com APIs from external applications using REST and OAuth authentication. Finally, it introduces a new Heroku Postgres feature called Data Clips that allows retrieving SQL query results in different formats, and how to integrate these clips into Force.com applications.
GraphQL - when REST API is not enough - lessons learnedMarcinStachniuk
This document discusses lessons learned from implementing GraphQL APIs. It begins by describing some limitations of REST APIs, such as requiring multiple roundtrips to fetch nested data. GraphQL is introduced as an alternative that allows clients to specify exactly what data they need in a single request. The document then covers various GraphQL concepts like queries, mutations, and type systems. It also discusses best practices like using a schema-first approach, pagination support, and the DataLoader library to solve the N+1 problem. Testing GraphQL APIs and integrating with Relay are also briefly outlined. The overall message is that GraphQL is a good alternative to REST when clients have complex data needs.
This document provides an introduction to Ajax including:
1) An overview of Ajax and that it allows for asynchronous JavaScript and XML requests.
2) An example of how to make an XMLHttpRequest to get data from a server.
3) A discussion of the same-origin policy and techniques like JSONP that allow requesting data from other domains.
4) Code examples of making JSONP requests by dynamically inserting <script> tags and passing callback functions.
The document discusses various aspects of building RESTful web APIs with ASP.NET Web API, including content negotiation, model validation, serialization, and self-hosting. It provides code examples for adding validation filters, configuring formatters for different content types, and setting up a self-hosted API server. The document also references resources for learning more about RESTful architecture and building hypermedia-driven APIs with ASP.NET Web API.
Developing application for Windows Phone 7 in TDDMichele Capra
A real example of how to develop an application for Windows Phone 7 with Test Driven Development approach. In this presentation you'll see also hoew to implements the Model-View-ViewModel (MVVM) pattern.
This document provides an overview of sensors on Android devices. It discusses categories of sensors including motion, environmental, and position sensors. It describes the Android sensor framework and types of sensors such as accelerometers, gyroscopes, gravity sensors, and rotation vectors. It provides details on accessing sensor data and best practices for using sensors. Specific sensors like temperature, humidity, and ambient light sensors are explained.
A new Linux process is started for an application with a single thread of execution. By default, all application components run in the same process and thread. Additional processes and threads can be created. The Android system tries to keep processes running as long as possible by placing them in an importance hierarchy, with foreground processes being least likely to be killed. The cached process of an inactive application is most likely to be killed first when memory is low.
This document provides summaries of various Firebase products and services, including Firebase Realtime Database, Firebase Authentication, Firebase Cloud Messaging, Firebase Notifications, Firebase Storage, Firebase Hosting, Firebase Test Lab for Android, and Firebase Crash Reporting. For each product or service, the document outlines its key capabilities and provides example use cases.
This document discusses user interface (UI) and user experience (UX) design considerations for mobile applications. It begins with an overview of simple list views and adapters in Android. It then covers several key constraints for mobile UX design, including limited data, finite battery life, hand-held usage, divided user attention, and small screens. The document provides tips for UI design on mobile, including formatting content, text size and spacing, touch controls, and hit targets. It also discusses list views and master-detail views in more detail. Overall, the document outlines important factors to consider for optimizing the mobile user experience.
This document provides information about fragments in Android. It defines a fragment as a modular section of an activity that has its own lifecycle and can be reused across activities. The key points covered include:
- Fragments have their own lifecycle that is directly tied to the host activity's lifecycle.
- The fragment lifecycle involves creation, view creation, attachment/detachment from the activity, and destruction phases.
- Fragments can be added to activities either statically in XML layouts or dynamically at runtime using FragmentTransactions.
- Fragments communicate with their host activity using getActivity() and the activity can reference fragments via the FragmentManager.
The document discusses various options for storing data in Android applications, including SharedPreferences, SQLite databases, network connections, content providers, and internal/external storage. It provides details on each option, such as what type of data each is suited for and how private or public the data is. Examples are given of storing data in SharedPreferences using key-value pairs and retrieving the data. The document also covers SQLite databases and using SQL to query and manipulate structured data.
Tk2323 lecture 5 material design & recycler viewMengChun Lam
This document provides an overview of Material Design and RecyclerView for Android development. It discusses key concepts of Material Design including environment, material properties, elevation and shadows. It also outlines the steps to construct a custom list using RecyclerView, including defining data models, view holders, and an adapter to link data to views. The RecyclerView displays large data sets efficiently by maintaining a limited number of views.
This document provides an outline and overview of key concepts for working with databases and SQL in mobile programming. It discusses different types of databases like SQLite and concepts like tables, rows, columns, and basic SQL statements for creating tables, selecting, inserting, updating, and deleting data. Examples are provided for each SQL statement to demonstrate their proper syntax and usage.
The document discusses intents, broadcast receivers, and intent filters in Android. It provides examples of explicit intents that specify a component directly and implicit intents that declare an action without specifying a component. Implicit intents can be received by components that declare intent filters supporting the action, MIME type, and category. The document also discusses using intent filters in the app manifest to advertise which implicit intents an app's activities, services, and broadcast receivers can receive.
This document provides an overview of user interface concepts in Android mobile app development, including:
- Common layouts like LinearLayout, RelativeLayout, and ConstraintLayout.
- Attributes for configuring views and view groups, such as width, height, padding, gravity.
- Best practices for supporting multiple screen densities and orientations using density-independent pixels and qualifiers.
- The process of declaring UI elements in XML layout files and linking them to code.
Tk2323 lecture 1 introduction to mobile applicationMengChun Lam
The document provides an introduction to a mobile application development course. It outlines topics that will be covered including Android architecture, mobile development considerations like device fragmentation and limited resources, and different app development methods like native, hybrid and web apps. It also introduces key mobile platforms like Android and iOS and how apps are distributed for each.
4. 4 JSON
▹JSON (JavaScript Object Notation) is a lightweight data-
interchange format.
▸Data is in name/value pairs
▸Data is separated by commas ,
▸Curly braces hold objects { }
▸Square brackets hold arrays [ ]
4
17. 17 API - Concept
Endpoint
▹ Basically is an URL
▹ Description
Method
▹ POST (Create)
▹ GET (Read)
▹ PUT
(Update/Relace)
▹ DELETE (Delete)
PARAMETER
▹ Key
▹ Data Type
▹ Section
(In URL/ in Body)
▹ Required or not
▹http://petstore.swagger.io/
▹http://petstore.swagger.io/v2/store/inventory
24. 24
API – Method and status
code
HTTP Verb CRUD
Entire Collection (e.g.
/customers)
Specific Item (e.g.
/customers/{id})
POST Create 201 (Created), 'Location' header
with link to /customers/{id}
containing new ID.
404 (Not Found), 409
(Conflict) if resource already
exists..
GET Read 200 (OK), list of customers. Use
pagination, sorting and filtering to
navigate big lists.
200 (OK), single customer.
404 (Not Found), if ID not
found or invalid.
PUT Update/Replace 405 (Method Not Allowed), unless
you want to update/replace every
resource in the entire collection.
200 (OK) or 204 (No
Content). 404 (Not Found), if
ID not found or invalid.
DELETE Delete 405 (Method Not Allowed), unless
you want to delete the whole
collection—not often desirable.
200 (OK). 404 (Not Found), if
ID not found or invalid.
25. 25 API – Server side
▹TTTP2543 Web Programming
▹Possible server side technology (microframework)
▸PhP (Lumen, Wave Framework, Slim…)
▸Python (Flask, FALCON,…)
▸Ruby on Rails