Software Transition from Flash to HTML5

Total Page:16

File Type:pdf, Size:1020Kb

Software Transition from Flash to HTML5 MASARYK UNIVERSITY FACULTY OF INFORMATICS Software transition from Flash to HTML5 MASTER’S THESIS Marián Rusnák Brno, 2016 Declaration I hereby declare that this thesis is my original authorial work, which I have completed independently. All sources, references and literature used or ex- cerpted during elaboration of this work are properly cited and listed in complete reference with links to the original sources. Advisor: doc. RNDr. Tomáš Pitner, PhD. v Acknowledgement I would like to thank Peter Krafčík and Martin Klimo from Interaktívna škola s.r.o. for the opportunity to work for them and for making this thesis possible. Next, I would like to thank my advisor, doc. Tomáš Pitner for his patience, for his valuable advices and for his positive attitude through my studies at the faculty. Special thanks go to Dušan Piroh, my colleague and my brother-in- law, for mentoring me throughout my entire life and for initiating my inter- est in software development and computer science. My gratitude also goes to my co-workers from AOL in London for their inspiration and support. Specifically, I would like to thank to Samuel Adu for all his effort in my English language revision. Big thank goes to my parents and my family for pushing me in writ- ing of this thesis as well as the entire studies. After all, I would like to thank all the influencers in the software de- velopment industry, all the smart people around me and my teachers for their contribution to my knowledge and skills required to finish this thesis. vii Abstract The aim of this thesis is to describe the process of manual transition of soft- ware from Adobe Flash technology to HTML5. Alf software, interactive tests creator and player, a non-trivial application made in Flash, is the main area of focus. The output of this thesis is a new HTML5 version developed from scratch, as a replacement for the former Flash one. The thesis describes its development from requirements specification to implementation and vali- dation. It also includes a comparison of Flash and standard web development workflows. Apart from HTML and other web technologies, which are mentioned in the thesis, it also outlines other development options to support the growing mobile platforms, including specifics for Flash. ix Keywords Alf software, Adobe Flash, HTML5, web, mobile, Single-Page Application, animations, interactive, ECMAScript 2015 xi Table of Contents 1 Introduction ..................................................................................................... 1 2 Alf Software ..................................................................................................... 3 2.1 Overview .................................................................................................... 3 2.2 Technologies............................................................................................... 6 2.2.1 Adobe Flash ........................................................................................ 6 2.2.2 Desktop Application .......................................................................... 8 2.2.3 Mobile Support Limitations ............................................................. 8 3 Options for Supporting Mobile Devices .................................................. 11 3.1 Native Applications ................................................................................ 11 3.2 Web Applications .................................................................................... 12 3.2.1 Mobile UI Frameworks ................................................................... 15 3.2.2 Adobe Edge ....................................................................................... 16 3.2.3 Google Web Designer ...................................................................... 16 3.3 Hybrid Applications ............................................................................... 16 3.3.1 PhoneGap .......................................................................................... 17 3.4 Native Cross-platform Approach ......................................................... 17 3.4.1 Xamarin ............................................................................................. 18 3.4.2 Appcelerator Titanium .................................................................... 18 3.4.3 NativeScript ...................................................................................... 18 3.5 Flash-based Approaches ........................................................................ 19 3.5.1 Adobe AIR......................................................................................... 19 3.5.2 Swiffy ................................................................................................. 19 3.5.3 Mozilla Shumway ............................................................................ 20 3.5.4 HTML5 Canvas Document ............................................................. 20 3.6 Summary and Conclusion ...................................................................... 20 4 Web Technologies ......................................................................................... 23 4.1 HTML5 ...................................................................................................... 23 4.1.1 Canvas ............................................................................................... 24 4.1.2 Audio and Video .............................................................................. 24 xiii TABLE OF CONTENTS 4.1.3 Other Features ................................................................................... 25 4.2 CSS3 ........................................................................................................... 25 4.2.1 Transformations ................................................................................ 25 4.2.2 Transitions ......................................................................................... 26 4.2.3 Animations ........................................................................................ 26 4.2.4 Other Features ................................................................................... 27 4.3 SVG ............................................................................................................ 27 4.4 JavaScript................................................................................................... 28 4.4.1 Modules.............................................................................................. 29 4.4.2 ECMAScript 2015 .............................................................................. 29 4.4.3 Single-Page Application Frameworks ........................................... 33 4.4.4 Testing ................................................................................................ 34 4.5 Build ........................................................................................................... 35 5 New Alf HTML5 Application ..................................................................... 37 5.1 Requirements ............................................................................................ 37 5.1.1 Functional .......................................................................................... 37 5.1.2 Non-functional .................................................................................. 38 5.1.3 Browser Support ............................................................................... 38 5.2 Analysis and Design ................................................................................ 40 5.2.1 Client-side Frameworks Analysis .................................................. 41 5.2.2 Prototyping ........................................................................................ 41 5.2.3 Architecture ....................................................................................... 43 5.2.4 Single-Page Application .................................................................. 46 5.3 Implementation ........................................................................................ 48 5.3.1 Back-end ............................................................................................. 48 5.3.2 Front-end ........................................................................................... 49 5.4 Comparison to Flash Development ....................................................... 59 5.4.1 User Interface .................................................................................... 59 5.4.2 Animations ........................................................................................ 59 5.4.3 Drag & Drop ...................................................................................... 60 5.4.4 Audio .................................................................................................. 60 5.4.5 Optimization ..................................................................................... 60 xiv TABLE OF CONTENTS 5.4.6 Compatibility and debugging ........................................................ 60 6 Conclusion ...................................................................................................... 63 6.1 Areas for Further Development ............................................................ 63 References ............................................................................................................... 65 Appendix A: Screenshots of all the Alf Tasks............................................ 73 Appendix B: Source Code .............................................................................
Recommended publications
  • Simulationsprogramm Zur Visualisierung Der Vorgänge in Einem Computer
    Simulationsprogramm zur Visualisierung der Vorgänge in einem Computer Masterarbeit zur Erlangung des Master of Advanced Studies ZFH in Informatik vorgelegt von Christian Kaegi geboren am 05.01.1969 von Bauma, Kanton Zürich eingereicht Dipl. Ing. Walter Eich Stetten, 28.8.2015 ZHAW - Masterarbeit - Christian Kaegi - 28.8.2015 - v2.0.3 Inhaltsverzeichnis 1. Zusammenfassung 9 2. Einleitung 11 2.1 Ausgangslage 11 2.2 Motivation 12 2.3 Fragestellungen 12 2.4 Abgrenzung 12 2.5 Zielsetzung 12 3. Von der abstrakten Theorie zur erleb- und fassbaren Simulation 13 3.1 Problemanalyse 13 3.1.1 Definition der Zielgruppe 13 3.1.2 Personas 14 3.1.3 Beispiele von existierenden Lösungen und Lösungsansätzen 15 3.1.3.1 Little Man Computer 15 3.1.3.2 Der Bonsai-Modellrechner 16 3.1.3.3 Der Murmelrechner 17 3.1.3.4 Paper Processor 18 3.1.3.5 WDR-1-Bit-Computer 19 3.1.3.6 Ein 8-Bit Computer Marke Eigenbau 19 3.1.3.7 Ein einfacher 4-Bit Computer für den Klassenraum 20 3.1.3.8 Visuelle Simulation einer 6502 CPU auf Transistorebene 21 3.1.3.9 Simulationen mit Logisim 22 3.1.3.10 Weitere Simulationsprogramme 22 3.1.4 Fazit 23 3.2 Lösungsansatz 24 3.3 Die Komponenten 25 3.3.1 Befehls-, Daten- und Adressbus 26 3.3.2 Logikgatter 26 3.3.3 Speicher 27 3.3.4 Auswahlschaltungen 30 3.3.5 Arithmetik 32 3.3.6 Taktgeber 36 3.4 Simulation in Logisim bauen 36 3.4.1 Befehlssatz 38 3.4.1.1 Erläuterung der Befehle 40 3.4.1.2 Zeichencode 41 3.5 Anforderungen an das Simulationsprogramm 43 3.6 Technologie-Evaluation 44 3.6.1 Zielplattform 44 3.6.2 Java 44 3.6.3 Actionscript 44 3.6.4
    [Show full text]
  • Thoughts on Flash
    Apple has a long relationship with Adobe. In fact, we met Adobe’s founders when they were in their proverbial garage. Apple was their first big customer, adopting their Postscript language for our new Laserwriter printer. Apple invested in Adobe and owned around 20% of the company for many years. The two companies worked closely together to pioneer desktop publishing and there were many good times. Since that golden era, the companies have grown apart. Apple went through its near death experience, and Adobe was drawn to the corporate market with their Acrobat products. Today the two companies still work together to serve their joint creative customers – Mac users buy around half of Adobe’s Creative Suite products – but beyond that there are few joint interests. I wanted to jot down some of our thoughts on Adobe’s Flash products so that customers and critics may better understand why we do not allow Flash on iPhones, iPods and iPads. Adobe has characterized our decision as being primarily business driven – they say we want to protect our App Store – but in reality it is based on technology issues. Adobe claims that we are a closed system, and that Flash is open, but in fact the opposite is true. Let me explain. First, there’s “Open”. Adobe’s Flash products are 100% proprietary. They are only available from Adobe, and Adobe has sole authority as to their future enhancement, pricing, etc. While Adobe’s Flash products are widely available, this does not mean they are open, since they are controlled entirely by Adobe and available only from Adobe.
    [Show full text]
  • Machine Learning in the Browser
    Machine Learning in the Browser The Harvard community has made this article openly available. Please share how this access benefits you. Your story matters Citable link http://nrs.harvard.edu/urn-3:HUL.InstRepos:38811507 Terms of Use This article was downloaded from Harvard University’s DASH repository, and is made available under the terms and conditions applicable to Other Posted Material, as set forth at http:// nrs.harvard.edu/urn-3:HUL.InstRepos:dash.current.terms-of- use#LAA Machine Learning in the Browser a thesis presented by Tomas Reimers to The Department of Computer Science in partial fulfillment of the requirements for the degree of Bachelor of Arts in the subject of Computer Science Harvard University Cambridge, Massachusetts March 2017 Contents 1 Introduction 3 1.1 Background . .3 1.2 Motivation . .4 1.2.1 Privacy . .4 1.2.2 Unavailable Server . .4 1.2.3 Simple, Self-Contained Demos . .5 1.3 Challenges . .5 1.3.1 Performance . .5 1.3.2 Poor Generality . .7 1.3.3 Manual Implementation in JavaScript . .7 2 The TensorFlow Architecture 7 2.1 TensorFlow's API . .7 2.2 TensorFlow's Implementation . .9 2.3 Portability . .9 3 Compiling TensorFlow into JavaScript 10 3.1 Motivation to Compile . 10 3.2 Background on Emscripten . 10 3.2.1 Build Process . 12 3.2.2 Dependencies . 12 3.2.3 Bitness Assumptions . 13 3.2.4 Concurrency Model . 13 3.3 Experiences . 14 4 Results 15 4.1 Benchmarks . 15 4.2 Library Size . 16 4.3 WebAssembly . 17 5 Developer Experience 17 5.1 Universal Graph Runner .
    [Show full text]
  • CSS Browser Selector Plus: a Javascript Library to Support Cross-Browser Responsive Design Richard Duchatsch Johansen Talita C
    CSS Browser Selector Plus: A JavaScript Library to Support Cross-browser Responsive Design Richard Duchatsch Johansen Talita C. Pagani Britto Cesar Augusto Cusin W3C Accessibility WG Member and Assistant Coordinator Professor at Faculdade Paraíso do Senior Front-end Developer at of Educational Projects - MStech Ceará and W3C Accessibility WG Eventials – Rua Itapaiúna, 2434 Rua Joaquim Anacleto Bueno, 1-42 Member – Rua da Conceição, 1228 São Paulo – SP – Brazil, Zip Code Bauru – SP – Brazil, Juazeiro do Norte – CE – Brazil, 05707-001 Zip Code 17047-281 Zip Code 63010-465 +55 14 9711-7983 +55 14 3235-5500 +55 15 8100-4466 [email protected] [email protected] [email protected] ABSTRACT means you can use CSS Media Queries to tweak a CSS for a Developing websites for multiples devices have been a rough task mobile devices, printer or create a responsive site. for the past ten years. Devices features change frequently and new Media queries is an extension to the @media (or media=”” devices emerge every day. Since W3C introduced media queries attribute, in <link> tag) specification on CSS, allowing in CSS3, it’s possible to developed tailored interfaces for multiple declaration of conditional queries expressions to detect particular devices using a single HTML document. CSS3 media queries media features, such as viewport width, display color, orientation have been used to support adaptive and flexible layouts, however, and resolution [1], as shown on Table 1. it’s not supported in legacy browsers. In this paper, we present CSS Browser Selector Plus, a cross-browser alternative method Table 1.
    [Show full text]
  • Tvorba Interaktivního Animovaného Příběhu
    Středoškolská technika 2014 Setkání a prezentace prací středoškolských studentů na ČVUT Tvorba interaktivního animovaného příběhu Sami Salama Střední průmyslová škola na Proseku Novoborská 2, 190 00 Praha 9 1 Obsah 1 Obsah .................................................................................................................. 1 2 2D grafika (základní pojmy) ................................................................................. 3 2.1 Základní vysvětlení pojmu (počítačová) 2D grafika ....................................... 3 2.2 Rozdíl - 2D vs. 3D grafika .............................................................................. 3 2.3 Vektorová grafika ........................................................................................... 4 2.4 Rastrová grafika ............................................................................................ 6 2.5 Výhody a nevýhody rastrové grafiky .............................................................. 7 2.6 Rozlišení ........................................................................................................ 7 2.7 Barevná hloubka............................................................................................ 8 2.8 Základní grafické formáty .............................................................................. 8 2.9 Druhy komprese dat ...................................................................................... 9 2.10 Barevný model ..........................................................................................
    [Show full text]
  • Multiplataformas Web ADELANTE IMPORTANTE
    Multiplataformas Web ADELANTE IMPORTANTE FLASH Todos los avisos realizados en ADOBE FLASH pasan por un filtro de conversión en HTML5, el cual se generan estos inconvenientes: - La velocidad de la animación no será igual al original (animación lenta). - La calidad de las imágenes en la animación no será la misma a la original (baja la calidad un 40% aprox.) * Se sugiere al cliente o agencia que envíe los materiales en ADOBE ANIMATE O HTML5. HTML5 PURO - Pueden usar cualquier software de animación o editor de texto HTML5 (Dreamweaver, Sublime, Brackets, etc). - El área de diseño no brinda soporte para animaciones, solo incorporará los códigos de métricas para el banner. - En caso el cliente solicite adaptaciones, es necesario que el cliente cuente con los materiales editables (proyecto). CLICK AQUÍ PLATAFORMAS PARA CREAR BANNERS desktop MÓVIL FORMATOS DE BANNER FORMATOS DE BANNER ESPECIFICACIONES TÉCNICAS ESPECIFICACIONES TÉCNICAS VER LOS TIPOS DE PLATAFORMA TIPOS DE PLATAFORMAS se recomienda el uso de las siguientes plataformas: desktop MÓVIL Estándar Estándar HTML5 puro HTML5 puro GOOGLE WEB DESIGNER adobe animate adobe animate jpg - png - gif RICH MEDIA RICH MEDIA HTML5 puro HTML5 PURO GOOGLE WEB DESIGNER RISING STAR* rising star* jpg - png - gif *Es una plataforma para avisos con interactividad especial (galería de fotos, galeria de videos, raspar, arrastrar, formularios, parallax, etc). CLICK AQUÍ FORMATOS DE BANNER DESKTOP Banner Banner Estándar Rich Media ESPECIFICACIONES TÉCNICAS ESPECIFICACIONES TÉCNICAS CLICK AQUÍ especificaciones técnicas DESKTOP DESKTOP ESTÁNDAR rich media ¿Qué plataforma vas a usar? ¿Qué plataforma vas a usar? HTML5 PURO HTML5 PURO GOOGLE WEB DESIGNER GOOGLE WEB DESIGNER ADOBE ANIMATE Rising star FORMATOS DE BANNER ESPECIFICACIONES TÉCNICAS DESKTOP - ESTÁNDAR HTML5 PURO 1.
    [Show full text]
  • Onclick Event-Handler
    App Dev Stefano Balietti Center for European Social Science Research at Mannheim University (MZES) Alfred-Weber Institute of Economics at Heidelberg University @balietti | stefanobalietti.com | @nodegameorg | nodegame.org Building Digital Skills: 5-14 May 2021, University of Luzern Goals of the Seminar: 1. Writing and understanding asynchronous code: event- listeners, remote functions invocation. 2. Basic front-end development: HTML, JavaScript, CSS, debugging front-end code. 3. Introduction to front-end frameworks: jQuery and Bootstrap 4. Introduction to back-end development: NodeJS Express server, RESTful API, Heroku cloud. Outputs of the Seminar: 1. Web app: in NodeJS/Express. 2. Chrome extensions: architecture and examples. 3. Behavioral experiment/survey: nodeGame framework. 4. Mobile development: hybrid apps with Apache Cordova, intro to Ionic Framework, progressive apps (PWA). Your Instructor: Stefano Balietti http://stefanobalietti.com Currently • Fellow in Sociology Mannheim Center for European Social Research (MZES) • Postdoc at the Alfred Weber Institute of Economics at Heidelberg University Previously o Microsoft Research - Computational Social Science New York City o Postdoc Network Science Institute, Northeastern University o Fellow IQSS, Harvard University o PhD, Postdoc, Computational Social Science, ETH Zurich My Methodology Interface of computer science, sociology, and economics Agent- Social Network Based Analysis Models Machine Learning for Optimal Experimental Experimental Methods Design Building Platforms Patterns
    [Show full text]
  • Talk Nerdy to Me January 2021 Microsoft Says Solarwinds Hackers Accessed Some of Its Source Code
    1 Talk Nerdy To Me January 2021 Microsoft Says SolarWinds Hackers Accessed Some of Its Source Code Microsoft revealed that the threat actors behind the SolarWinds supply chain attack were able to gain access to a small number of internal accounts and escalate access inside its internal network. The “very sophisticated nation-state actor” used the unauthorized access to view, but not modify, the source code present in its repositories, the company said. “We detected unusual activity with a small number of internal accounts and upon review, we discovered one account had been used to view source code in a number of source code repositories,” the Windows maker disclosed in an update. “The account did not have permissions to modify any code or engineering systems and our investigation further confirmed no changes were made. These accounts were investigated and remediated.” The development is the latest in the far-reaching espionage saga that came to light earlier in December following revelations by cybersecurity firm FireEye that attackers had compromised its systems via a trojanized SolarWinds update to steal its Red Team penetration testing tools. During the course of the probe into the hack, Microsoft had previously admitted to detecting malicious SolarWinds binaries in its own environment but denied its systems were used to target others or that attackers had access to production services or customer data. Several other companies, including Cisco, VMware, Intel, NVIDIA, and a number of other US government agencies, have since discovered markers of the Sunburst (or Solorigate) malware on their networks, planted via tainted Orion updates. The Redmond-based company said its investigation is still ongoing but downplayed the incident, adding “viewing source code isn’t tied to elevation of risk” and that it had found evidence of attempted activities that were neutralized by its protections.
    [Show full text]
  • Resources and Strategies for Creating Molecular Animations
    Resources and Strategies for Creating Molecular Animations Jerry E. Honts, Ph.D., Department of Biology, Drake University, Des Moines, IA 50311 Why create molecular animations? Molecular animations have been used extensively in undergraduate science courses to teach concepts that are difficult or impossible to represent with static diagrams. Animations can assist learning by providing multiple perspectives of complex structures, or they can be useful in depicting changes in a system over time. While some instructors create animations for their courses, many rely on animations provided by textbook publishers, supplied on physical media (CDs or DVDs) or deployed on the web. Even though there are numerous existing animations, some instructors will want to create new animations to assist their specific aspects of their teaching. Many instructors are intimidated by the complexity of the software used to create the animations found in textbooks and on the internet, many of which were created by artists with expertise in the digital realm. But with a little persistence, it is possible for any would-be animator to create simple and reasonably effective animations to communicate key ideas for which static figures are inadequate. Animations can take on many forms, from simple frame-by-frame 2D animations, to complex cinematic quality 3D animations. While the latter receive the most attention, there is no strong evidence that their "realism" necessarily helps students grasp complex concepts (Smallman & St. John, 2005). An individual should weigh the cost (time and effort) required to create an animation versus the learning gains that are desired. Strategies for making molecular animations. There are two major strategies for making animations of molecules.
    [Show full text]
  • Html Basic Template with Css
    Html Basic Template With Css Unteachable Alvin still impregnates: calando and unanxious Zeus flout quite caudally but enthralled her commode Laurenceconnectedly. sorbs Wailingly or gibe. dipteran, Jed forbear gargles and shooting secureness. Giffy outroot therefrom if cooperative In your template html basic with css selectors and javascripts such as outlined in colors and for. Pens below the css files specify a html basic template css with the extra pages that make your web presence to your own style elements for or send. The basic blog types, html basic template css with this. Do you know a little HTML? RSVP, or answer a survey. From html css comes with a development and html basic template css with the header or suggestions and premium html elements for free simple website to be used in a future? Stylish landing page with a digital and your content, with html basic template css, firefox first thing you to simply put your web development tools are ready for. You find using html basic template with css editors such as an mobile layouts for basic. Designs and basic multipurpose use droid serif and much faster on images effectively to dabble into any template html basic css with your. But we do you agree that template html with css! It a mobile app, basic html template with css? The creator has used a little bit of creative touch to the regular elements. Parallax effect on a basic and customize the next big image column blog you streamline your potential through how our basic html. HTML templates on this listing.
    [Show full text]
  • Free Wysiwyg Php Web Builder
    Free wysiwyg php web builder click here to download RocketCake is a free web editor for creating responsive websites. For beginners and professional web developers. No programming needed. WYSIWYG Editor JavaScript, PHP code, user-defined breakpoint code and premium support.​Download · ​Tutorials · ​News · ​Professional Edition. Web Builder is a WYSIWYG (What-You-See-Is-What-You-Get) program used to create web pages. Outputs standard HTML4, HTML5, XHTML, CSS3, PHP. Asking whether one should use PHP or HTML to design a website is like Most of the non-WYSIWYG web editors on the Free HTML Editors. We've collated the very best free website builders available, including a CoffeeCup Free HTML Editor isn't a WYSIWYG website builder, but it. Free HTML editors, WYSIWYG web editors, site builders, for designing your own If you don't know what HTML, CSS, JavaScript, PHP or Perl are, this may be. Generates SEO-ready and W3C-compliant HTML/CSS/PHP code. Option SEO assistant. Free website templates are available. WYSIWYG. DB. STATIC. paid. Silex is a Website Builder for Designers. Silex is free and open source because we believe that free minds need to have free tools, without hidden costs. Popular Alternatives to WYSIWYG Web Builder for Windows, Mac, Linux, Web, iPhone and more. Explore Komodo Edit is a fast, smart, free and open-source code editor. Generates W3C- compliant HTML/CSS/PHP code. Free (WYSIWYG or Text-based) Web Page Editors, HTML Editors, Web Page find 2 types of web page editors/HTML editors/website builders: WYSIWYG ones and the web: Java, JavaScript, JSP, ASP, VBScript, PHP, Perl, CSS, HTML, etc.
    [Show full text]
  • Adobe Creative Cloud for Enterprise Overview
    Requires Services New CS6 Since Creative Cloud for enterprise App Single Always have access to the latest Adobe creative apps, services, IT tools and enterprise support Apps All Apps, Services, and Features What it’s used for Adobe Photoshop Edit and composite images, use 3D tools, edit video, and perform advanced image analysis. • • Adobe Illustrator Create vector-based graphics for print, web, video, and mobile. • • Adobe InDesign Design professional layouts for print and digital publishing. • • Adobe Bridge Browse, organize and search your photos and design files in one central place. Design • Adobe Acrobat Pro Create, protect, sign, collaborate on, and print PDF documents. • Adobe Dreamweaver Design, develop, and maintain standards-based websites and applications. • • Web Adobe Animate Create interactive animations for multiple platforms. • • • Adobe Premiere Pro Edit video with high-performance, industry-leading editing suite. • • Adobe After Effects Create industry-standard motion graphics and visual effects. • • Adobe Audition Create, edit, and enhance audio for broadcast, video, and film. • • Adobe Prelude Streamline the import and logging of video, from any video format. • • • Video and audio and Video Adobe Media Encoder Automate the process of encoding video and audio to virtually any video or device format. • Exclusive Creative Cloud Apps (not available in Adobe Creative Suite) Adobe XD Design and prototype user experiences for websites, mobile apps and more. • • • • Adobe Dimension Composite high-quality, photorealistic images with 2D and 3D assets. • • • • Adobe Character Animator Animate your 2D characters in real time. • • Adobe InCopy Professional writing and editing solution that tightly integrates with Adobe InDesign. • • Adobe Lightroom Classic Organize, edit, and publish digital photographs.
    [Show full text]