The document discusses eHarmony's plans to migrate their iOS app from Objective-C to Swift. It provides an overview of eHarmony as a company that has successfully matched over 565,000 couples using a scientific matching system. It then discusses Swift features like protocol extensions, error handling, and nullability that improve code safety. Finally, it outlines eHarmony's plan to tackle the migration through modernizing Objective-C code, generating bridging headers, and incrementally migrating parts of the app to Swift.
The web has changed! Users spend more time on mobile than on desktops and they expect to have an amazing user experience on both platforms. APIs are the heart of the new web as the central point of access data, encapsulating logic and providing the same data and same features for desktops and mobiles.
In this talk, I will show you how in only 45 minutes we can create full REST API, with documentation and admin application build with React.
Why is API platform a way to go and the new standard in developing apps? In this talk, I want to show you some real examples that we built using API platform including a ticketing system for the world’s biggest bicycle marathon and a social network that is a mixture of both Tinder and Facebook Messenger.
We had to tackle problems regarding the implementation of tax laws in 18 different countries, dozens of translations (including Arabic), multiple role systems, different timezones, overall struggle with a complicated logic with an infinite number of branches, and more. Are you interested? Sign up for the talk.
Using API platform to build ticketing system (translations, time zones, ...) ...Antonio Peric-Mazar
Why is API platform a way to go and the new standard in developing apps? In this talk, I want to show you some real examples that we built using API platform including a ticketing system for the world’s biggest bicycle marathon and a social network that is a mixture of both Tinder and Facebook Messenger. We had to tackle problems regarding the implementation of tax laws in 18 different countries, dozens of translations (including Arabic), multiple role systems, different timezones, overall struggle with a complicated logic with an infinite number of branches, and more.
The web has changed! Users spend more time on mobile than on desktops and they expect to have an amazing user experience on both platforms. APIs are the heart of the new web as the central point of access data, encapsulating logic and providing the same data and same features for desktops and mobiles.
In this talk, I will show you how in only 45 minutes we can create full REST API, with documentation and admin application build with React.
Why is API platform a way to go and the new standard in developing apps? In this talk, I want to show you some real examples that we built using API platform including a ticketing system for the world’s biggest bicycle marathon and a social network that is a mixture of both Tinder and Facebook Messenger.
We had to tackle problems regarding the implementation of tax laws in 18 different countries, dozens of translations (including Arabic), multiple role systems, different timezones, overall struggle with a complicated logic with an infinite number of branches, and more. Are you interested? Sign up for the talk.
Using API platform to build ticketing system (translations, time zones, ...) ...Antonio Peric-Mazar
Why is API platform a way to go and the new standard in developing apps? In this talk, I want to show you some real examples that we built using API platform including a ticketing system for the world’s biggest bicycle marathon and a social network that is a mixture of both Tinder and Facebook Messenger. We had to tackle problems regarding the implementation of tax laws in 18 different countries, dozens of translations (including Arabic), multiple role systems, different timezones, overall struggle with a complicated logic with an infinite number of branches, and more.
Prairie DevCon 2015 - Crafting Evolvable API Responsesdarrelmiller71
Web frameworks help you build an API quickly but most have little support for dealing with an API that needs to evolve, forcing you to prematurely version your API. But many industry professionals are telling us not to version. How can we avoid it? Take back control of the content you send over the wire. API responses are the "user interface" of your API and should be crafted with same attention to detail that cause designers to fret over color choices, shadows and highlights. In this talk I’ll show techniques that can be used to build responses that are easier to evolve and highlight the types of practices that encourage breaking changes and force you to version your API.
Understanding Identity in the World of Web APIs – Ronnie Mitra, API Architec...CA API Management
Web Based APIs have become a powerful tool for reaching end users in an increasingly fragmented market. The emergence of public and private APIs have introduced new challenges in identity management and access control. Attend this session to get a crash course in Web APIs, the risks they introduce and the emerging standards that can make them safer to use (including OAuth 2 and Open ID Connect)
Scaling your Android App With ModularizationBen Schwab
Droidcon SF 2018
Ben Schwab discusses Airbnb's journey to modularization its app to scale with a growing number of developers.
https://www.youtube.com/watch?v=jrnhIgFzgns
GraphQL - when REST API is to less - lessons learnedMarcinStachniuk
We all know the REST architectural style to define a good API for your applications. However, REST has its disadvantages and constraints. That’s why Facebook developed GraphQL as an alternative.
In my talk, I will present you some REST constraints and how GraphQL solves them. I will talk about how we implemented GraphQL in our application and why.
Get to know our successes… and failures from the first row.
Given at TrueNorthPHP 2014:
"MVC presents a great way to divide responsibilities in your application but it offers no help in building the most critical part: the model or domain. This talk will introduce ways that can help you to encapsulate the richness of your domain. We'll look at Action Domain Response as a new way of thinking about the concepts presented in MVC before examining Hexagonal Architecture, allowing you to easily reuse your domain across multiple delivery mechanisms. We'll then finish with an introduction to Domain Driven Design, a technique that allows you to closely align your domain with the business problems it is solving while helping keep things well designed and easily maintainable. By the end of this talk you should have the knowledge needed to begin modelling your domains more powerfully while keeping them aligned to the real world problems they solve."
It's possible to make a structured, consistent, API that can handle changes to logic and the schema. Sure, it seems like a good plan to dump everything out of the database today, but what are you going to do when something changes down the road? Let's have a talk about some SOLID ways to structure our APIs and keep them from breaking down the road.
This prototype works, but it's not pretty, and now it's in production. That legacy application really needs some TLC. Where do we start? When creating long lived applications, it's imperative to focus on good practices. The solution is to improve the whole development life cycle; from planning, better coding and testing, to automation, peer review and more. In this talk, we'll take a quick look into each of these areas, looking at how we can make positive, actionable change in our workflow.
BruJUG Brussels GraphQL when RESR API is to less - lessons learnedMarcinStachniuk
We all know the REST architectural style to define a good API for your applications. However, REST has its disadvantages and constraints. That’s why Facebook developed GraphQL as an alternative.
In my talk, I will present you some REST constraints and how GraphQL solves them. I will talk about how we implemented GraphQL in our application and why.
Get to know our successes… and failures from the first row.
Cross Platform Mobile Apps with the Ionic FrameworkTroy Miles
What happens when you combine Google's AngularJS, the super cool JavaScript MVC Framework with Apache Cordova, the cross platform mobile framework using web technology? You get the Ionic Framework.
With Ionic you build mobile apps using the web technology you already know. Think the apps will be slow and clunky? Think again, Ionic comes out of the box with well design CSS3 classes to make beautiful and fluid apps. Using Cordova and jQuery Mobile already? Well, with Ionic you will learn to love mobile development again. No more write-only spaghetti code, Ionic makes it easy to create clean, testable, logical mobile apps. Need to support tablet and phone in the same app? Ionic has you covered. You can create one app which uses responsive design to change its look based on the device's screen dimensions.
In this session, we will build an app together to show many of Ionic's major features including CollectionRepeat, UI Widgets, Modals, and Slide Boxes. We will also discuss development workflow, debugging and which tools we use.
More details at http://wordpress.chanezon.com/?p=29
Today Kevin Marks (Google), Chris Schalk (Google), Lou Moore (Hi5) and myself presented OpenSocial at the Graphing Social Patterns West 2008 conference.
GSP is a great conference to talk about OpenSocial: all the attendees are involved in some sort of social networking software, and are very receptive to OpenSocial. Congrats to Dave McClure and the O’Reilly team for organizing it.
It was a great opportunity to have the 3 OpenSocial developer advocates from Google on stage at the same time, usually we all travel to different conferences. I made an introduction about OpenSocial, Chris described the API, showed code and did a demo of PixWall on Orkut, Kevin talked about Shindig and Caja, and demoed Shindig working in the Eclipse debugger.
And Lou Moore from Hi5 showed all the cool extensions to OpenSocial that Hi5 has made: for example he demoed PixWall taking advantage of the Photo API that Hi5 makes available, that allows an application developer to let the user pick a picture from one of their Hi5 Photo albums. Thanks Lou.
This is a supplementary slide deck to the presentation on how to build native Android app which integrates with SharePoint Online by using Xamarin and Visual Studio. Check out sharemuch.com for the source code
These slides focus on documentation for REST APIs. See http://idratherbewriting.com for more detail. For the video recording, see http://youtu.be/0yfNd7tzH2Q. This deep dive is the second slide deck I used in the presentation.
Prairie DevCon 2015 - Crafting Evolvable API Responsesdarrelmiller71
Web frameworks help you build an API quickly but most have little support for dealing with an API that needs to evolve, forcing you to prematurely version your API. But many industry professionals are telling us not to version. How can we avoid it? Take back control of the content you send over the wire. API responses are the "user interface" of your API and should be crafted with same attention to detail that cause designers to fret over color choices, shadows and highlights. In this talk I’ll show techniques that can be used to build responses that are easier to evolve and highlight the types of practices that encourage breaking changes and force you to version your API.
Understanding Identity in the World of Web APIs – Ronnie Mitra, API Architec...CA API Management
Web Based APIs have become a powerful tool for reaching end users in an increasingly fragmented market. The emergence of public and private APIs have introduced new challenges in identity management and access control. Attend this session to get a crash course in Web APIs, the risks they introduce and the emerging standards that can make them safer to use (including OAuth 2 and Open ID Connect)
Scaling your Android App With ModularizationBen Schwab
Droidcon SF 2018
Ben Schwab discusses Airbnb's journey to modularization its app to scale with a growing number of developers.
https://www.youtube.com/watch?v=jrnhIgFzgns
GraphQL - when REST API is to less - lessons learnedMarcinStachniuk
We all know the REST architectural style to define a good API for your applications. However, REST has its disadvantages and constraints. That’s why Facebook developed GraphQL as an alternative.
In my talk, I will present you some REST constraints and how GraphQL solves them. I will talk about how we implemented GraphQL in our application and why.
Get to know our successes… and failures from the first row.
Given at TrueNorthPHP 2014:
"MVC presents a great way to divide responsibilities in your application but it offers no help in building the most critical part: the model or domain. This talk will introduce ways that can help you to encapsulate the richness of your domain. We'll look at Action Domain Response as a new way of thinking about the concepts presented in MVC before examining Hexagonal Architecture, allowing you to easily reuse your domain across multiple delivery mechanisms. We'll then finish with an introduction to Domain Driven Design, a technique that allows you to closely align your domain with the business problems it is solving while helping keep things well designed and easily maintainable. By the end of this talk you should have the knowledge needed to begin modelling your domains more powerfully while keeping them aligned to the real world problems they solve."
It's possible to make a structured, consistent, API that can handle changes to logic and the schema. Sure, it seems like a good plan to dump everything out of the database today, but what are you going to do when something changes down the road? Let's have a talk about some SOLID ways to structure our APIs and keep them from breaking down the road.
This prototype works, but it's not pretty, and now it's in production. That legacy application really needs some TLC. Where do we start? When creating long lived applications, it's imperative to focus on good practices. The solution is to improve the whole development life cycle; from planning, better coding and testing, to automation, peer review and more. In this talk, we'll take a quick look into each of these areas, looking at how we can make positive, actionable change in our workflow.
BruJUG Brussels GraphQL when RESR API is to less - lessons learnedMarcinStachniuk
We all know the REST architectural style to define a good API for your applications. However, REST has its disadvantages and constraints. That’s why Facebook developed GraphQL as an alternative.
In my talk, I will present you some REST constraints and how GraphQL solves them. I will talk about how we implemented GraphQL in our application and why.
Get to know our successes… and failures from the first row.
Cross Platform Mobile Apps with the Ionic FrameworkTroy Miles
What happens when you combine Google's AngularJS, the super cool JavaScript MVC Framework with Apache Cordova, the cross platform mobile framework using web technology? You get the Ionic Framework.
With Ionic you build mobile apps using the web technology you already know. Think the apps will be slow and clunky? Think again, Ionic comes out of the box with well design CSS3 classes to make beautiful and fluid apps. Using Cordova and jQuery Mobile already? Well, with Ionic you will learn to love mobile development again. No more write-only spaghetti code, Ionic makes it easy to create clean, testable, logical mobile apps. Need to support tablet and phone in the same app? Ionic has you covered. You can create one app which uses responsive design to change its look based on the device's screen dimensions.
In this session, we will build an app together to show many of Ionic's major features including CollectionRepeat, UI Widgets, Modals, and Slide Boxes. We will also discuss development workflow, debugging and which tools we use.
More details at http://wordpress.chanezon.com/?p=29
Today Kevin Marks (Google), Chris Schalk (Google), Lou Moore (Hi5) and myself presented OpenSocial at the Graphing Social Patterns West 2008 conference.
GSP is a great conference to talk about OpenSocial: all the attendees are involved in some sort of social networking software, and are very receptive to OpenSocial. Congrats to Dave McClure and the O’Reilly team for organizing it.
It was a great opportunity to have the 3 OpenSocial developer advocates from Google on stage at the same time, usually we all travel to different conferences. I made an introduction about OpenSocial, Chris described the API, showed code and did a demo of PixWall on Orkut, Kevin talked about Shindig and Caja, and demoed Shindig working in the Eclipse debugger.
And Lou Moore from Hi5 showed all the cool extensions to OpenSocial that Hi5 has made: for example he demoed PixWall taking advantage of the Photo API that Hi5 makes available, that allows an application developer to let the user pick a picture from one of their Hi5 Photo albums. Thanks Lou.
This is a supplementary slide deck to the presentation on how to build native Android app which integrates with SharePoint Online by using Xamarin and Visual Studio. Check out sharemuch.com for the source code
These slides focus on documentation for REST APIs. See http://idratherbewriting.com for more detail. For the video recording, see http://youtu.be/0yfNd7tzH2Q. This deep dive is the second slide deck I used in the presentation.
Peter Hoddie, Kinoma VP, gave a talk at the IoT-themed API-Craft meet-up at the Tradeshift HQ in San Francisco. He discusses connectivity, the challenges and demands of IoT, and how Kinoma is building a set of APIs for the IoT.
This is an adaptation of the presentation given at the SpringOne 2008 conference in Hollywood, FL. It contains some updates on project status, and also information about the recently published book "Spring Python 1.1"
This slideshow is licensed under a Creative Commons Attribution 3.0 United States License.
The liferay case: lessons learned evolving from RPC to Hypermedia REST APIsJorge Ferrer
Liferay is an open source platform started in 2000, long before the term “Web API” existed. One early characteristic of Liferay has been its great extensibility, which included providing a featureful HTTP API to access its functionalities since the very beginning. Initially this API used SOAP (as well as other less used protocols). Later a new “RESTful” option was added, leveraging HTTP+JSON and it became much more popular (even though it was at Level 0 in Richardson Maturity Model). However, both approaches lead users of the API to have a high coupling that makes the evolution of the APIs a challenging task. So we started wondering, isn’t there a better way to build APIs in 2017?
This session explains our search to find a better alternative and what we learned along the way.
It focuses on how we have adopted Hypermedia and Shared Vocabularies to create a new breed of APIs that we believe form the secret ingredients that solve the most important challenge we have in the API Economy: evolvability. We are now successfully applying this type of APIs in all of our products, on premise, cloud based, … even internal.
We have found that once you know how and build some common foundation, all the barriers to build evolvable APIs disappear. We learned from many others along the way and want to contribute back by sharing our experience.
Goal:
Minimize technical debt, code changes, and rewrites. Show stakeholders and customers the developing or fully-implemented UI as early as possible.
How:
Fake the backend. Then when the UI code is completely done, make the backend real.
Mobile Devices and SharePoint - Sahil MalikSPC Adriatics
There is a computer in your pocket, and mine. Though lets be honest, beyond email, Organizations though are still struggling to make use of these smart devices that they are already paying for. The reason is simple, Imagine a computer, with an inferior processor, poor connectivity, smaller screen, and easily lost and used for personal purposes. Add to it, multiple platforms, and an incredibly fast release cadence. In this fast paced session, Sahil will demonstrate mobile apps targeting the SharePoint and Office 365 platforms demonstrating what you, the Microsoft developer needs to learn and be on top of going forward. And yes, you need to broaden your horizons past C# too. But don’t worry, even if you have never worked with iOS before, there is plenty to chew on in this session.
The Office Add-ins April community call features an overview of the Office Add-ins platform, what’s new in the Excel JavaScript APIs, plans to implement the Edge WebView control for Office Add-ins and provided guidance about implications of this upcoming change for add-in developers, and the COM:Web add-in bridge feature and how Excel custom functions can be saved in a compatible format as XLL UDFs.
Office Add-ins feedback and additional content please visit the following.
Technical questions – https://stackoverflow.com/questions/tagged/office-js
Developer Center - https://developer.microsoft.com/en-us/office
• Issues – https://github.com/OfficeDev/office-js/issues
• Recommendations and suggestions - https://officespdev.uservoice.com/
APIs and API-first strategies are quickly becoming important for software product companies. These slides are from a lightning talk discussing why developer experience should be your #1 concern when launching a web API, and how everyone on your team can contribute to the process through the practice of API modeling.
Survival Strategies for API Documentation: Presentation to Southwestern Ontar...Tom Johnson
This is a presentation I gave to the Southwestern Ontario STC chapter on API documentation on Feb 2, 2015. For more details, see my blog at http://idratherbewriting.com. You can listen to the recorded presentation here: http://youtu.be/I8rGe2w1sAo.
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
Developing Distributed High-performance Computing Capabilities of an Open Sci...Globus
COVID-19 had an unprecedented impact on scientific collaboration. The pandemic and its broad response from the scientific community has forged new relationships among public health practitioners, mathematical modelers, and scientific computing specialists, while revealing critical gaps in exploiting advanced computing systems to support urgent decision making. Informed by our team’s work in applying high-performance computing in support of public health decision makers during the COVID-19 pandemic, we present how Globus technologies are enabling the development of an open science platform for robust epidemic analysis, with the goal of collaborative, secure, distributed, on-demand, and fast time-to-solution analyses to support public health.
Designing for Privacy in Amazon Web ServicesKrzysztofKkol1
Data privacy is one of the most critical issues that businesses face. This presentation shares insights on the principles and best practices for ensuring the resilience and security of your workload.
Drawing on a real-life project from the HR industry, the various challenges will be demonstrated: data protection, self-healing, business continuity, security, and transparency of data processing. This systematized approach allowed to create a secure AWS cloud infrastructure that not only met strict compliance rules but also exceeded the client's expectations.
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!
Strategies for Successful Data Migration Tools.pptxvarshanayak241
Data migration is a complex but essential task for organizations aiming to modernize their IT infrastructure and leverage new technologies. By understanding common challenges and implementing these strategies, businesses can achieve a successful migration with minimal disruption. Data Migration Tool like Ask On Data play a pivotal role in this journey, offering features that streamline the process, ensure data integrity, and maintain security. With the right approach and tools, organizations can turn the challenge of data migration into an opportunity for growth and innovation.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Why React Native as a Strategic Advantage for Startup Innovation.pdfayushiqss
Do you know that React Native is being increasingly adopted by startups as well as big companies in the mobile app development industry? Big names like Facebook, Instagram, and Pinterest have already integrated this robust open-source framework.
In fact, according to a report by Statista, the number of React Native developers has been steadily increasing over the years, reaching an estimated 1.9 million by the end of 2024. This means that the demand for this framework in the job market has been growing making it a valuable skill.
But what makes React Native so popular for mobile application development? It offers excellent cross-platform capabilities among other benefits. This way, with React Native, developers can write code once and run it on both iOS and Android devices thus saving time and resources leading to shorter development cycles hence faster time-to-market for your app.
Let’s take the example of a startup, which wanted to release their app on both iOS and Android at once. Through the use of React Native they managed to create an app and bring it into the market within a very short period. This helped them gain an advantage over their competitors because they had access to a large user base who were able to generate revenue quickly for them.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Shahin Sheidaei
Games are powerful teaching tools, fostering hands-on engagement and fun. But they require careful consideration to succeed. Join me to explore factors in running and selecting games, ensuring they serve as effective teaching tools. Learn to maintain focus on learning objectives while playing, and how to measure the ROI of gaming in education. Discover strategies for pitching gaming to leadership. This session offers insights, tips, and examples for coaches, team leads, and enterprise leaders seeking to teach from simple to complex concepts.
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.
Your Digital Assistant.
Making complex approach simple. Straightforward process saves time. No more waiting to connect with people that matter to you. Safety first is not a cliché - Securely protect information in cloud storage to prevent any third party from accessing data.
Would you rather make your visitors feel burdened by making them wait? Or choose VizMan for a stress-free experience? VizMan is an automated visitor management system that works for any industries not limited to factories, societies, government institutes, and warehouses. A new age contactless way of logging information of visitors, employees, packages, and vehicles. VizMan is a digital logbook so it deters unnecessary use of paper or space since there is no requirement of bundles of registers that is left to collect dust in a corner of a room. Visitor’s essential details, helps in scheduling meetings for visitors and employees, and assists in supervising the attendance of the employees. With VizMan, visitors don’t need to wait for hours in long queues. VizMan handles visitors with the value they deserve because we know time is important to you.
Feasible Features
One Subscription, Four Modules – Admin, Employee, Receptionist, and Gatekeeper ensures confidentiality and prevents data from being manipulated
User Friendly – can be easily used on Android, iOS, and Web Interface
Multiple Accessibility – Log in through any device from any place at any time
One app for all industries – a Visitor Management System that works for any organisation.
Stress-free Sign-up
Visitor is registered and checked-in by the Receptionist
Host gets a notification, where they opt to Approve the meeting
Host notifies the Receptionist of the end of the meeting
Visitor is checked-out by the Receptionist
Host enters notes and remarks of the meeting
Customizable Components
Scheduling Meetings – Host can invite visitors for meetings and also approve, reject and reschedule meetings
Single/Bulk invites – Invitations can be sent individually to a visitor or collectively to many visitors
VIP Visitors – Additional security of data for VIP visitors to avoid misuse of information
Courier Management – Keeps a check on deliveries like commodities being delivered in and out of establishments
Alerts & Notifications – Get notified on SMS, email, and application
Parking Management – Manage availability of parking space
Individual log-in – Every user has their own log-in id
Visitor/Meeting Analytics – Evaluate notes and remarks of the meeting stored in the system
Visitor Management System is a secure and user friendly database manager that records, filters, tracks the visitors to your organization.
"Secure Your Premises with VizMan (VMS) – Get It Now"
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
Listen to the keynote address and hear about the latest developments from Rachana Ananthakrishnan and Ian Foster who review the updates to the Globus Platform and Service, and the relevance of Globus to the scientific community as an automation platform to accelerate scientific discovery.
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
2. • Introduction
• What You Might Have Missed at WWDC
• Swift 2.0
• Swift & Enterprise & eHarmony
• Questions?
Agenda
3. “We came together in 2000 believing that with a mix of
psychology and some cutting edge technology, we could create
relationships that were happier, more fulfilling and enduring.
With over 61 million registered users, we’ve successfully
married more than 565,000 couples, and are responsible for
nearly 5% of marriages in the US — that’s 438 people every
day that say ‘I Do’ because of eHarmony.”
“Millions of people have used eHarmony’s Compatibility
Matching System to find compatible long-term relationships.
Today, an average of 438 eHarmony members marry every
day in the United States as a result of being matched on the
site.”
Who is eHarmony?
4. Currently, we maintain Desktop Web, Mobile Web, iOS
and Android apps for our scientific matching service.
Our iOS App currently boasts:
• 8 billion downloads
• Best selling app
• Biggest grossing app
The team has been busy!
The eHarmony App
5. • Dr. Gary Philipp – Sr. Manager, Mobile Engineering
Gary has a PhD in Engineering and a Masters in Behavioral Science. He is the old man of the
group (programming Apple products for over 30 years) and his first computer was an Apple II.
• Chris Truman – iOS Engineer
Self taught iOS developer, born and raised in LA. Previously worked at Urbanspoon and
TripAdvisor. Currently mentoring students in Swift through the Thinkful & One Month Swift programs. Loves
Dogs, Comic Books, and long walks on the beach.
• Premal Mistry – iOS Engineer
Premal loves designing and developing apps for iOS and Android and has over 6 years of
experience in Software Development. He has a Masters in Computer Science and is passionate about
learning new technologies (Swift, Design Patterns, Animation, etc). During weekends, I love to watch
movies, TV shows, hanging out with friends and Yelping various food places in LA.
• Heena Rastogi – Senior iOS Engineer
Heena earned a Masters in Computer Science (Multimedia and Creative Technologies) and
has been developing iOS apps for the past 6 years. She loves being a part of development projects that
are focused on creative and exciting technologies. Outside of coding, she enjoys reading, running on the
beach and listening to electronic music.
The Team
6. • UIStackView
• Rich Playgrounds
• Slide Over & Split View & PiP Video
• Universal Links
• App Search & CoreSpotlight
• SFSafariViewController
• App Transport Security
• App Thinning
• Storyboard References
• UI Testing
• Metal & Games
• TestFlight and Push Notifications
What You Might Have Missed at
WWDC 2015
15. • Split up Large Storyboards
• Custom Unwind Segues
Storyboard References
16. • New Testing Bundle Type
• Record a Script
UI Testing
17. • Core Animation
• On the Mac
• ReplayKit, GameplayKit, ModelKit
Metal & Games
18. • Tester Limit increased to 2000
• Push Notifications Text Input
• 4k Push Payload Limit Increase
• Feedback Service will be deprecated in 2016
TestFlight & Push Notifications
19. • Checking API Availability
• Synthesized Headers
• Protocol Extension
• Error Handling
• And more…
What’s New in Swift 2.0
20. Apple always rolls out new API’s and classes
throughout the year.
How do we check for API & Class availability?
Checking API Availability in Swift
21. The old way:
if NSClassFromString("SFSafariViewControler") != nil {
let eHAdviceVC = SFSafariViewController(URL: url, entersReaderIfAvailable: true)
eHAdviceVC.delegate = self
presentViewController(eHAdviceVC, animated: true, completion: nil)
} else {
let eHAdviceVC = eHAdviceViewController(URL: url);
presentViewController(eHAdviceVC, animated: true, completion: nil)
}
Checking API Availability in Swift
22. Checking API Availability in Swift
The new way:
if #available(iOS 9, OS X 10.10, watchOS 2, *) {
let eHAdviceVC = SFSafariViewController(URL: url, entersReaderIfAvailable: true)
eHAdviceVC.delegate = self
presentViewController(eHAdviceVC, animated: true, completion: nil)
} else {
let eHAdviceVC = eHAdviceViewController();
presentViewController(eHAdviceVC, animated: true, completion: nil)
}
23. Synthesized header files:
Xcode 7 scans through your code and produces virtual header files
that summarize the exposed methods with none of the code
Documentation - Similar to Apple's own classes
How to generate synthesized headers in Xcode 7?
Xcode 7, go to Navigate > Generated Interface.
Synthesized Headers
24. Synthesized Headers
extension NSURLRequest: URLRequestConvertible {
public var URLRequest: NSURLRequest
}
func URLRequest(method: Method, URL: URLStringConvertible) -> NSURLRequest
/**
Creates a request using the shared manager instance for the specified method, URL string, parameters, and parameter
encoding.
:param: method The HTTP method.
:param: URLString The URL string.
:param: parameters The parameters. `nil` by default.
:param: encoding The parameter encoding. `.URL` by default.
:returns: The created request.
*/
public func request(method: Method, URLString: URLStringConvertible, parameters: [String: AnyObject]? = nil, encoding:
ParameterEncoding = .URL) -> Request
/**
Creates a request using the shared manager instance for the specified URL request.
If `startRequestsImmediately` is `true`, the request will have `resume()` called before being returned.
:param: URLRequest The URL request
:returns: The created request.
*
25. Protocol Extensions
Protocols can be extended to provide method
and property implementations to conforming
types.
You can use protocol extensions to provide a
default implementation to any method or property
requirement of that protocol.
28. Error Handling
The Old Way:
func refreshActivityFeed() {
let refreshToken:String? = login(username, error:&error)
if (error != nil) {
if let error = error {
switch (error.code) {
case ERROR_UNAUTHORIZED:
showLoginVC()
case ERROR_FORBIDDEN:
showErrorAlert()
case ERROR_NOT_FOUND:
showLoginVC()
default:
showErrorAlert()
}
}
} else {
// Fetch the most recent activity feeds from the server
// Parse and prepare data structure
// Update UI
loadActivityFeed(refreshToken!)
updateUI()
}
}
29. The New Way:
func refreshActivityFeed() {
do
{
let refreshToken = try login(username)
loadActivityFeed(refreshToken)
updateUI()
} catch (LoginError.ERROR_UNAUTHORIZED) {
showLoginVC()
} catch (LoginError.ERROR_FORBIDDEN) {
showErrorAlert()
} catch (LoginError.ERROR_NOT_FOUND) {
showLoginVC()
} catch {
showErrorAlert()
}
}
Error Handling
30. Error Handling
Representing Errors
• ErrorType is a protocol in the Swift Standard Library
• Any type that conforms to ErrorType can be thrown and caught
• Can make your own types conform as well
• enum is great for groups of related errors
enum LoginError : ErrorType {
case ERROR_UNAUTHORIZED
case ERROR_FORBIDDEN
case ERROR_NOT_FOUND
case ERROR_NOT_ALLOWED
case ErrorWithMessage(code: Int, message: String)
}
31. Throwing Errors:
enum VendingMachineError: ErrorType {
case InvalidSelection
case InsufficientFunds(required: Double)
case OutOfStock
}
func purchaseItemFromVendingMachine(item: VendingItem) throws -> Bool {
if item.count() > 0 {
// .....
return true
} else {
throw VendingMachineError.OutOfStock
}
}
Error Handling
34. Specifying Cleanup Actions:
func processFile(filename: String) throws {
if exists(filename) {
do {
let file = try open(filename)
defer {
close(file)
}
while let line = try file.readline() {
...
}
} catch {
...
}
}
}
Error Handling
35. And More…
Guard:
func validateJSON() -> Bool {
guard let name = person["name"] else {
return false
}
.....
.....
return true
}
• Designed to solve pyramid of doom problem
• Extremely useful for early exit
36. Swift & Enterprise & eHarmony
• Why?
• Bridging & Migration
• eHarmony’s Plan to Tackle
37. • Simpler to read
• Type safety and hence code safety
• Interacts with Objective-C Runtime seamlessly
• Take advantage of Objective-C APIs and Cocoa design patterns
• Open Source - we gain flexibility and freedom
• Other platforms can also adopt Swift
Why?
38. 3 important aspects of Swift / Objective-C compatibility:
• Interoperability
Ability to interface between Swift and Objective-C in either direction
• Mix and Match
Allows you to create mixed-language apps containing both Swift and
Objective-C files that can communicate with each other
• Migration
Migration from existing Objective-C code to Swift is made easy with
interoperability and mix and match, making it possible to replace parts
of your Objective-C apps with the latest Swift features
Bridging & Migration
39. 3 New features introduced for Objective-C :
• Nullability for Objective-C
• Lightweight Generics
• Kind of
Bridging & Migration
40. Bridging & Migration
Objective-C
@interface SNGFeedView
@property(nonatomic, readonly) UIView *photoView;
@property(nonatomic, readonly, copy) NSArray *feedViews;
- (UIView*) photoViewForFeed:(SSFeed) photoFeed;
@end
Swift
class SNGFeedView {
var photoView : UIView?
var feedViews: [AnyObject]!
func photoView(photoFeed:SSFeed) - > UIView
}
41. Indicate whether Objective-C/C pointers can be nil
• Better communicate intent of APIs
• Allows improved static checking
• Improves usability of APIs in Swift
Nullability
42. Nullability Qualifiers
Nullability
Qualifier Usage Swift
nullable Pointer may be nil UIView?
nonnull nil is not a meaningful value UIView
null_unspecified Neither nullable nor nonnull
applies
UIView!
NOTE: Compiler does not change the way it generates
code because of a non-null annotation.
43. Example:
NS_ASSUME_NONNULL_BEGIN
@interface SNGFeedView
@property(nonatomic,readonly,nullable) UIView *photoView;
@property(nonatomic, readonly,copy) NSArray *feedViews;
-(UIView*) photoViewForFeed:(SSFeed) photoFeed;
@end
NS_ASSUME_NONNULL_END
Audited regions make default assumptions about some
pointers:
• Single-level pointers are assumed to be nonnull
• NSError** parameters are assumed to be nullable for both
levels
• Only annotate the nullable or null_unspecified cases
Nullability
44. Allow collections to be parameterized by element type:
“An array of views” ,
“A dictionary mapping strings to images”
• Improve expressivity of APIs
• Make collections easier to use
• Enable better static type checking
Lightweight Generics
46. • It tells compiler it’s object of some kind of of given type
extern __kindof NSApplication *NSApp; // NSApplication instance
NSObject *object = NSApp; // convert to super class
MyApplication *myApp = NSApp; // implicit downcast subclass
NSString *string = NSApp // Incorrect
• Much more useful than id, more type information in API
contract
• Allows messaging subclass methods
[NSApp praiseUser] // Invokes MyApplication method
KindOf Types
47. • Modernization of Objective-C
• Generating Bridging Headers
• Incremental Migration
eHarmony’s Plan to Tackle
48. Before you start:
• Create a Swift class for your corresponding Objective-C .m and .h
• Import relevant system frameworks
• Fill out an Objective-C bridging header if you need to access
Objective-C code from the same app target in your Swift file
• To make your Swift class accessible and usable back in Objective-
C, make it a descendant of an Objective-C class or mark it with the
@objc attribute
Migration
49. As you work:
• Set up your Swift class by subclassing Objective-C classes,
adopting Objective-C protocols, and more.
• See “Adopting Cocoa Design Patterns” for information on
translating common design patterns.
• To translate your properties from Objective-C to Swift, read
Properties in “The Swift Programming Language.”
• Declare simple macros as global constants, and translate
complex macros into functions.
Migration
50. After you finish:
• Update import statements in your Objective-C code (to #import
"ProductModuleName-Swift.h"), as described in “Importing Code
from Within the Same App Target”
• Remove the original Objective-C .m file from the target by
deselecting the target membership checkbox
• Update your code to use the Swift class name instead of the
Objective-C name if you gave the Swift class a different name
Migration