SlideShare ist ein Scribd-Unternehmen logo
1 von 128
Downloaden Sie, um offline zu lesen
A FRONT-END PERSPECTIVE & APPROACH
RAMI ENBASHI . NRG-EDGE‹
MAY 6 , 2015 . FOSTER CITY, CALIFORNIA
SOLVING FOR COMPLEX
UI DESIGNS
About me
I am lazy
Work smart
not hard
Work on fresh ideas
not tedious tasks
Productive
Laziness
Productivity
Good decision making
Decision Fatigue
A lazy team is a
productive team
The machine
Automate my
workïŹ‚ow
Magnolia
The story of Mr. X
and the green bars
A lazy user is a
happy user
A lazy developer is a
productive developer
Magnolia Template
Development
How do we get there?
UI Sandboxℱ
Background
UI-Focused, Content
Managed,
Responsive Solutions
UI-Focused
Design ïŹrst
Complex client-side
functionality
Project
Manager
Lead
Analyst
DesignerDev Lead
UI Lead
Magnolia
Lead
UI
Developer
UI
Developer
Magnolia
Developer
Magnolia
Developer
Analyst/
Tester
Analyst/
Tester
Express
CSS JS HTML
The problem
The environment
Magnolia
Dev
UI Dev
Magnolia
Dev
UI Dev
The process
01
UX/Design
02
Mobile Strategy
03
Template Analysis
04
UI Development
05
UI Build / QA
06
UI-Magnolia Sync
07
Magnolia Development
08
Final Testing
01
UX/Design
02
Mobile Strategy
03
Template Analysis
04
UI Development
05
UI Build / QA
06
UI-Magnolia Sync
07
Magnolia Development
08
Final Testing
01
UX/Design
02
Mobile Strategy
03
Template Analysis
04
UI Development
05
UI Build / QA
06
UI-Magnolia Sync
07
Magnolia Development
08
Final Testing
Wireframes
Color Palate
Typography
Style Guide
Interaction Guide
High Fidelity Designs
(PSDs)
UX/Design
Mobile Strategy
Template Analysis
UI Development
UI Build / QA
UI-Magnolia Sync
Magnolia Development
Final Testing
Major/Minor Breakpoints
Supported Devices
Grid System DeïŹnition
Fluid/Fixed-width Layout
Responsive/Adaptive
01
02
03
04
05
06
07
08
01
UX/Design
02
Mobile Strategy
03
Template Analysis
04
UI Development
05
UI Build / QA
06
UI-Magnolia Sync
07
Magnolia Development
08
Final Testing
Content Managed Fields
Templates
Areas
Components
Content Type
01
UX/Design
02
Mobile Strategy
03
Template Analysis
04
UI Development
05
UI Build / QA
06
UI-Magnolia Sync
07
Magnolia Development
08
Final Testing
Design Implementation
Client-side Functionality
Front-end API Integration
Functional Website
Template Engine
‹
var$data$=${$
$$title:$'My$Buddies',$
$$friends:$[$
$$$$'Tyrion',$
$$$$'Arya',$
$$$$'Ygritte',$
$$$$'Drogo'$
$$]$
};‹
‹
<h1>{{$title$}}</h1>$
<ul>$
{%$for$friend$in$friends$%}$
$$$$<li>{{$friend$}}</li>$
{%$endfor$%}$
</ul>‹
‹
<h1>My$Buddies</h1>$
<ul>$
$$$$<li>Tyrion</li>$
$$$$<li>Arya</li>$
$$$$<li>Ygritte</li>$
$$$$<li>Drogo</li>$
</ul>‹
+ →
.
├── global
│   ├── areas
│   │   ├── footer.swig
│   │   ├── htmlHeader.swig
│   │   ├── logo.swig
│   │   ├── mainArea.swig
│   │   └── navigation.swig
│   ├── components
│   │   └── genericContent.swig
│   └── macros
│   └── calculator.swig
├── layouts
│   ├── about.swig
│   ├── generic.swig
│   └── homepage.swig
└── pages
└── homepage
├── areas
│   ├── callout.swig
│   ├── features.swig
│   ├── products.swig
│   ├── welcome.swig
│   └── whoWeAre.swig
└── components
└── featureItem.swig
‹
<div$id="welcome">$
$$<div$class="container">$
$$$$<h3$$class="heading">Welcome$to$Launch</h3>$
$$$$<h4$class="subheading">We$are$a$Magnolia$CMS$Services$&$Integration$Company</h4>$
$$$$<a$href="/login"$class=“login">Log$In</a>$
$$</div>$
</div>$
#welcome{$
$$background:$url(../assets/images/welcomeYbg.jpg)$noYrepeat$50%$84%;$
$$backgroundYsize:$cover;$
$$width:$inherit;$
}$
CSS
HTML
‹
<div$id=“welcome"$style=“backgroundYimage:$url(../assets/images/welcomeYbg.jpg)”$>$
$$<div$class="container">$
$$$$<h3$$class="heading">Welcome$to$Launch</h3>$
$$$$<h4$class="subheading">We$are$a$Magnolia$CMS$Services$&$Integration$Company</h4>$
$$$$<a$href="/login"$class=“login">Log$In</a>$
$$</div>$
</div>$
#welcome{$
$$background:$noYrepeat$50%$84%;$
$$backgroundYsize:$cover;$
$$width:$inherit;$
}$
CSS
HTML
Bower
Front-end Dependency
Management
‹
{$
$$"name":$"magnoliaYdemo",$
$$"version":$"1.3.0YSNAPSHOT",$
$$"dependencies":${$
$$$$"angular":$">=1.3.*",$
$$$$"json3":$"~3.3.1",$
$$$$"es5Yshim":$"~3.0.1",$
$$$$"foundation":$"~5.4.3",$
$$$$"angularYresource":$">=1.2.*",$
$$$$"angularYcookies":$">=1.2.*",$
$$$$"angularYsanitize":$">=1.2.*",$
$$$$"fontYawesome":$">=4.1.0",$
$$$$"lodash":$"~2.4.1",$
$$$$"angularYuiYrouter":$"~0.2.10",$
$$$$"ngYlodash":$"~0.0.2",$
$$$$"cssYtoggleYswitch":$"~3.0.0",$
$$$$"angularYplaceholderYtai":$"~1.0.1",$
$$$$"angularYscroll":$"~0.6.4",$
$$$$"angularjsYgeolocation":$"~0.1.1",$
$$$$"mobileYdetect":$"hgoebl/mobileYdetect.js#~0.4.3"$
$$},$
$$"devDependencies":${$
$$$$"angularYmocks":$">=1.2.*",$
$$$$"angularYscenario":$">=1.2.*"$
$$}$
}$
bower.json
Grunt
Task Runner
Compiling
Injection
MiniïŹcation
UnCSS
Watch / Live Reload
Testing
Deployment
module.exports$=$function(grunt)${$
$$grunt.initConfig({$
$$$$jshint:${$
$$$$$$files:$['Gruntfile.js',$'src/**/*.js',$$$$$$$$$$$
'test/**/*.js'],$
$$$$$$options:${$
$$$$$$$$globals:${$
$$$$$$$$$$jQuery:$true$
$$$$$$$$}$
$$$$$$}$
$$$$},$
$$$$watch:${$
$$$$$$files:$['<%=$jshint.files$%>'],$
$$$$$$tasks:$['jshint']$
$$$$}$
$$});$
$$grunt.loadNpmTasks('gruntYcontribYjshint');$
$$grunt.loadNpmTasks('gruntYcontribYwatch');$
$$grunt.registerTask('default',$['jshint']);$
};$
{"
"""name":""magnolia-frontend","
"""version":""1.0.1","
"""dependencies":"{},"
"""devDependencies":"{"
"""""bower":""~1.3.3","
"""""browserify":""~6.2.0","
"""""grunt":""~0.4.2","
"""""grunt-autoprefixer":""~1.0.1","
"""""grunt-browserify":""~3.2.0","
"""""grunt-contrib-concat":""~0.5.0","
"""""grunt-contrib-cssmin":""~0.10.0","
"""""grunt-contrib-htmlmin":""~0.3.0","
"""""grunt-contrib-imagemin":""~0.9.1","
"""""grunt-contrib-jshint":""~0.10.0","
"""""grunt-contrib-less":""~0.12.0","
"""""grunt-contrib-uglify":""~0.6.0","
"""""grunt-contrib-watch":""~0.6.1","
"""""grunt-injector":""~0.5.3","
"""""grunt-karma":""~0.9.0","
"""""grunt-swig-templates":""~0.1.2","
"""""grunt-usemin":""2.1.1","
"""""jshint-stylish":""~1.0.0","
"""""karma":""~0.12.21","
"""""karma-chrome-launcher":""^0.1.7","
"""""karma-phantomjs-launcher":""~0.1.2","
"""""kss":""~1.3.0","
"""""lodash":""~2.4.1","
"""""minifyify":""~5.0.0""
"}"
}"
GruntïŹle.json package.json
Yeoman
App Scaffolding Tool
Knyle Style Sheets
(KSS)
01
UX/Design
02
Mobile Strategy
03
Template Analysis
04
UI Development
05
UI Build / QA
06
UI-Magnolia Sync
07
Magnolia Development
08
Final Testing
Centralized CI Build
Automated Tests
Browser / Device
Compatibility Testing
01
UX/Design
02
Mobile Strategy
03
Template Analysis
04
UI Development
05
UI Build / QA
06
UI-Magnolia Sync
07
Magnolia Development
08
Final Testing
A process to allow
incremental UI changes
with minimal conïŹguration
or backend changes
{"
"""name":""magnolia-frontend","
"""version":"“1.0.1-SNAPSHOT”,"
"""dependencies":"{},"
"""devDependencies":"{"
""""..."
"}"
}"
package.json
$$<groupId>com.project.frontend</groupId>$
$$<artifactId>projectYmoduleYtheme</artifactId>$
$$<version>1.0.1YSNAPSHOT</version>$
$$<name>Project$Magnolia$Theme</name>$
pom.xml
<plugin>$
$$<groupId>org.jasig.maven</groupId>$
$$<artifactId>sassYmavenYplugin</artifactId>$
</plugin>$
SASS
<plugin>$
$$<groupId>pl.allegro</groupId>$
$$<artifactId>gruntYmavenYplugin</artifactId>$
</plugin>$
Grunt
http://addyosmani.com/blog/making-maven-grunt
<plugin>$
$$<groupId>com.github.eirslett</groupId>$
$$<artifactId>frontendYmavenYplugin</artifactId>$
</plugin>$
NodeJS
<execution>$
$$<id>npm$install</id>$
</execution>$
<execution>$
$$<id>bower$install</id>$
</execution>$
<execution>$
$$<id>grunt$build</id>$
<configuration>$
$$<arguments>build:magnolia</arguments>$
</configuration>$
</execution>$
{$
//$Environment$targets$
$$development:${$
$$$$options:${$
$$$$$$loginURL:$'http://localhost:9000/login'$
$$$$$$herokuPath:$'git@heroku.com:devYproject.git',$
$$$$$$endpoint:$'content/products.json',$
$$$$$$googleMapsKey:$'AucmoT6cAyH9TeXeGGqsB8LIYoJhvs',$
$$$$$$assetsPath:$'assets/images'$
$$$$}$
$$},$
$$magnoliaBuild:${$
$$$$options:${$
$$$$$$loginURL:$'/login'$
$$$$$$herokuPath:$'git@heroku.com:mgnlYproject.git',$
$$$$$$endpoint:$'/magnoliaYinstance/.rest/products',$
$$$$$$googleMapsKey:$'zciuv2aS1N04nujJw0_hZoP',$
$$$$$$assetsPath:$'/.resources/projectYmoduleYtheme/assets/images'$
$$$$}$
$$}$
}
GruntïŹle.json
angular.module('app')$
$$.factory('products',$function($http)${$
$$$$return${$
$$$$$$getProducts:$function(params)${$
$$$$$$$$return$$http.get('content/products.json',${$params:$params$});$
$$$$$$}$
$$$$};$
$$});$
products.service.js
angular.module('app')$
$$.factory('products',$function($http)${$
$$$$return${$
$$$$$$getProducts:$function(params)${$
$$$$$$$$return$$http.get(‘/magnoliaYinstance/.rest/products',${$params:$params$});$
$$$$$$}$
$$$$};$
$$});$
angular.module('app')$
$$.factory('products',$function($http,$ENV)${$
$$$$return${$
$$$$$$getProducts:$function(params)${$
$$$$$$$$return$$http.get(ENV.endpoint,${$params:$params$});$
$$$$$$}$
$$$$};$
$$});$
‹
<div$id="welcome">$
$$<div$class="container">$
$$$$<h3$class=“heading”>{{content.headingText}}</h3>$
$$$$<h4$class=“subheading”>{{content.subheadingText}}</h4>$
$$</div>$
</div>$
welcome.swig
‹
<div$id="welcome">$
$$<div$class="container">$
$$$$<h3$class=“heading">${content.headingText}</h3>$
$$$$<h4$class=“subheading">${content.subheadingText}</h4>$
$$</div>$
</div>$
welcome.ftl
01
UX/Design
02
Mobile Strategy
03
Template Analysis
04
UI Development
05
UI Build / QA
06
UI-Magnolia Sync
07
Magnolia Development
08
Final Testing
Template conïŹguration
01
UX/Design
02
Mobile Strategy
03
Template Analysis
04
UI Development
05
UI Build / QA
06
UI-Magnolia Sync
07
Magnolia Development
08
Final Testing
Template
ConïŹguration
‹
<div$id="whoYweYare">$
$$<div$class="container">$
$$$$<h3$$class="heading">Who$We$Are</h3>$
$$$$<h4$class="subheading">We$are$a$Magnolia$CMS$Services$&$Integration$Company</h4>$
$$$$<div$class="bodyText">$
$$$$$$<p>NRG$Edge$has$helped$organizations$implement$and$use$Magnolia$CMS$to$build$
$$$$$$$$$and$improve$the$digital$experiences$they$provide$to$their$customers.</p>$
$$$$</div>$
$$$$<a$href="/about"$class="learnmore">Learn$More</a>$
$$</div>$
</div>$
Area DeïŹniton
Dialog DeïŹniton
‹
<div$id="whoYweYare">$
$$<div$class="container">$
$$$$<h3$$class=“heading">${content.headingText!}</h3>$
$$$$<h4$class=“subheading">${content.subheadingText!}</h4>$
$$$$<div$class="bodyText">$
$$$$$$${cmsfn.decode(content).bodyText}$
$$$$</div>$
$$$$<a$href="/about"$class="learnmore">Learn$More</a>$
$$</div>$
</div>$
Template Script
Pages App
Content
ConïŹguration hell
YO DAWG, I HEARD YOU LIKE
MAGNOLIA CONFIGURATION
SO I PUT CONFIGURATION IN YOUR
CONFIGURATION SO YOU CAN
CONFIGURE YOUR CONFIGURATION.
Alternative
conïŹguration methods
http://kickstart.io
STK
A front-end solution
UI Sandboxℱ
‹
<div$id="whoYweYare">$
$$<div$class="container">$
$$$$<h3$$class="heading">Who$We$Are</h3>$
$$$$<h4$class="subheading">We$are$a$Magnolia$CMS$Services$&$Integration$Company</h4>$
$$$$<div$class="bodyText">$
$$$$$$<p>NRG$Edge$has$helped$organizations$implement$and$use$Magnolia$CMS$to$build$
$$$$$$$$$and$improve$the$digital$experiences$they$provide$to$their$customers.</p>$
$$$$</div>$
$$$$<a$href="/about"$class="learnmore">Learn$More</a>$
$$</div>$
</div>$
Area
DeïŹniton
Template
Script
Dialog
DeïŹniton
Content
Introduce conventions
Abstract out conventional
conïŹguration
Specify only unconventional
conïŹguration
Examples of Area
DeïŹnition conventions
‱ Area name = HTML element ID in camelCase
‱ “who-we-are” => “whoWeAre”
‱ Area title = Area name in Title Case
‱ “whoWeAre” => “Who We Are”
Defaults
‱ type = “noComponent”
‱ renderType = “freemarker”
‱ enabled = true
‹
<div$id="whoYweYare">$
$$<div$class="container">$
$$$$<h3$$class="heading">Who$We$Are</h3>$
$$$$<h4$class="subheading">We$are$a$Magnolia$CMS$Services$&$Integration$Company</h4>$
$$$$<div$class="bodyText">$
$$$$$$<p>NRG$Edge$has$helped$organizations$implement$and$use$Magnolia$CMS$to$build$
$$$$$$$$$and$improve$the$digital$experiences$they$provide$to$their$customers.</p>$
$$$$</div>$
$$$$<a$href="/about"$class="learnmore">Learn$More</a>$
$$</div>$
</div>$
Autogenerate
Area$Definition$:{$
name:$“whoWeAre",$
title:$“Who$We$Are”,$
enabled:$true,$
type:$“noComponent”,$
renderType:$“freemarker”,$
templateScript:$“
”$
}$
Gain simplicity
Do we have to lose
Flexibility?
Convention over
ConïŹguration (CoC)
“Convention over conïŹguration is a software
design paradigm which seeks to decrease the
number of decisions that developers need to
make, gaining simplicity, but not necessarily
losing ïŹ‚exibility.”
Conventions are
subjective
Use Domain SpeciïŹc
Language (DSL) rules to
deïŹne conventions
Rules$:{$
areaNameSuffix:$“Area”,$
dialogNameSuffix:$“Dialog”,$
defaultAreaType:$“noComponent”,$//$$or$“single”,$“list”$
areaEnabledByDefault:$true,$
defaultRenderType:$“freemarker”,$//$or$“jsp”$
...$
}$
‹
<div$id="whoYweYare">$
$$<div$class="container">$
$$$$<h3$class="heading">Who$We$Are</h3>$
$$$$<h4$class="subheading">We$are$a$Magnolia$CMS$Services$&$Integration$Company</h4>$
$$$$<div$class="bodyText">$
$$$$$$<p>NRG$Edge$has$helped$organizations$implement$and$use$Magnolia$CMS$to$build$
$$$$$$$$$and$improve$the$digital$experiences$they$provide$to$their$customers.</p>$
$$$$</div>$
$$$$<a$href="/about"$class="learnmore">Learn$More</a>$
$$</div>$
</div>$
Rules
Area$Definition$:{$
name:$“whoWeAre",$
title:$“Who$We$Are”,$
enabled:$true,$
type:$“noComponent”,$
renderType:$“freemarker”,$
templateScript:$“
”$
}$
Magnolia ConïŹg
+
→
Autogenerate
Minimum Effective Dose of
conïŹguration (MED ConïŹg)
Implicit/Explicit
ConïŹguration
‹
<div$id="whoYweYare">$
$$<div$class="container">$
$$$$<h3$class="heading">Who$We$Are</h3>$
$$$$<h4$class="subheading">We$are$a$Magnolia$CMS$Services$&$Integration$Company</h4>$
$$$$<div$class="bodyText">$
$$$$$$<p>NRG$Edge$has$helped$organizations$implement$and$use$Magnolia$CMS$to$build$
$$$$$$$$$and$improve$the$digital$experiences$they$provide$to$their$customers.</p>$
$$$$</div>$
$$$$<a$href="/about"$class="learnmore">Learn$More</a>$
$$</div>$
</div>$
Rules
Area$Definition$:{$
name:$“whoWeAre",$
title:$“Who$We$Are”,$
enabled:$true,$
type:$“noComponent”,$
renderType:$“freemarker”,$
templateScript:$“
”$
}$
Magnolia ConïŹg
+
→
Autogenerate
‹
<div$id="whoYweYare"$areaYname="myArea">$
$$<div$class="container">$
$$$$<h3$class="heading">Who$We$Are</h3>$
$$$$<h4$class="subheading">We$are$a$Magnolia$CMS$Services$&$Integration$Company</h4>$
$$$$<div$class="bodyText">$
$$$$$$<p>NRG$Edge$has$helped$organizations$implement$and$use$Magnolia$CMS$to$build$
$$$$$$$$$and$improve$the$digital$experiences$they$provide$to$their$customers.</p>$
$$$$</div>$
$$$$<a$href="/about"$class="learnmore">Learn$More</a>$
$$</div>$
</div>$
{"
areaName:"“myArea”"
}"
MED ConïŹg
Area$Definition$:{$
name:$“myArea",$
title:$“My$Area”,$
enabled:$true,$
type:$“noComponent”,$
renderType:$“freemarker”,$
templateScript:$“
”$
}$
Magnolia ConïŹg
+
→
Autogenerate
‹
<div$id="whoYweYare">$
$$<div$class="container">$
$$$$<h3$class="heading">Who$We$Are</h3>$
$$$$<h4$class="subheading">We$are$a$Magnolia$CMS$Services$&$Integration$Company</h4>$
$$$$<div$class="bodyText">$
$$$$$$<p>NRG$Edge$has$helped$organizations$implement$and$use$Magnolia$CMS$to$build$
$$$$$$$$$and$improve$the$digital$experiences$they$provide$to$their$customers.</p>$
$$$$</div>$
$$$$<a$href="/about"$class="learnmore">Learn$More</a>$
$$</div>$
</div>$
<div$id="whoYweYare">$
$$<div$class="container">$
$$$$<h3$class=“heading"$field="heading">Who$We$Are</h3>$
$$$$<h4$class=“subheading"$field="subheading">We$are$a$Magnolia$CMS$Services$&$
Integration$Company</h4>$
$$$$<div$class=“bodyText"$field="bodyText">$
$$$$$$<p>NRG$Edge$has$helped$organizations$implement$and$use$Magnolia$CMS$to$build$
$$$$$$$$$and$improve$the$digital$experiences$they$provide$to$their$customers.</p>$
$$$$</div>$
$$$$<a$href="/about"$class="learnmore">Learn$More</a>$
$$</div>$
</div>
{"
content:"["
{"name:"“heading”,""
type:"“text”"
},"
{"name:"“subheading”,""
type:"“text”"
},"
{"name:"“bodyText”,""
type:"“richText”"
}"
]"
}
MED ConïŹg
+
→
<div$id="whoYweYare">$
$$<div$class="container">$
$$$$<h3$$class=“heading">$
${content.headingText!”Heading”}$
</h3>$
$$$$<h4$class=“subheading">$
${content.subheadingText!”Subheading”}$
</h4>$
$$$$<div$class="bodyText">$
$$$$$$${cmsfn.decode(content).bodyText!”bodytext”}$
$$$$</div>$
$$$$<a$href="/about"$class=“learnmore">$
Learn$More$
</a>$
$$</div>$
</div>
FTL Template
<div$id="whoYweYare">$
$$<div$class="container">$
$$$$<h3$class=“heading"$field="heading">Who$We$Are</h3>$
$$$$<h4$class=“subheading"$field="subheading">We$are$a$Magnolia$CMS$Services$&$
Integration$Company</h4>$
$$$$<div$class=“bodyText"$field="bodyText">$
$$$$$$<p>NRG$Edge$has$helped$organizations$implement$and$use$Magnolia$CMS$to$build$
$$$$$$$$$and$improve$the$digital$experiences$they$provide$to$their$customers.</p>$
$$$$</div>$
$$$$<a$href="/about"$class="learnmore">Learn$More</a>$
$$</div>$
</div>
{"
content:"["
{"name:"“heading”,""
type:"“text”"
},"
{"name:"“subheading”,""
type:"“text”"
},"
{"name:"“bodyText”,""
type:"“richText”"
}"
]"
}
MED ConïŹg
+
→ Dialog/Content
What did we gain?
Demo time!
Right technology
stack
Data binding
Source
Target
One-way data binding
Model
View
Two-way data binding
Template
ViewModel
Three-way data binding
UI Sandbox
DSL Rules
+
MGNL
ConïŹg
Slicing
In-memory
NoSQL DB
NoCR
REST
MED
ConïŹg
HTML
MGNL
ConïŹg
Magnolia
JCR
Template
Model View
Is this for everyone?
What’s next?
rami.enbashi@nrg-edge.com
Thank you

Weitere Àhnliche Inhalte

Ähnlich wie Solving for complex UI designs

How to Achieve Product-Market Fit with Rapid Prototyping and User Testing by ...
How to Achieve Product-Market Fit with Rapid Prototyping and User Testing by ...How to Achieve Product-Market Fit with Rapid Prototyping and User Testing by ...
How to Achieve Product-Market Fit with Rapid Prototyping and User Testing by ...Dan Olsen
 
Design for Web and Mobile
Design for Web and MobileDesign for Web and Mobile
Design for Web and MobileShady Selim
 
susanta_resume
susanta_resumesusanta_resume
susanta_resumeSusanta Swain
 
chris-hellman-resume-2015
chris-hellman-resume-2015chris-hellman-resume-2015
chris-hellman-resume-2015Chris Hellman
 
Praveen Vadla_Resume_2017
Praveen Vadla_Resume_2017Praveen Vadla_Resume_2017
Praveen Vadla_Resume_2017Praveenvadla
 
Ramesh - Resume
Ramesh - ResumeRamesh - Resume
Ramesh - ResumeRAMESH C
 
UXD / DNA - DesignMap, Inc.
UXD / DNA - DesignMap, Inc.UXD / DNA - DesignMap, Inc.
UXD / DNA - DesignMap, Inc.DesignMap
 
The Art of AngularJS in 2015
The Art of AngularJS in 2015The Art of AngularJS in 2015
The Art of AngularJS in 2015Matt Raible
 
Play & Learn in Global UI/UX Design Competition
Play & Learn in Global UI/UX Design CompetitionPlay & Learn in Global UI/UX Design Competition
Play & Learn in Global UI/UX Design CompetitionAfif Bimantara
 
Shashank_Shetkar_CV TESTING
Shashank_Shetkar_CV TESTINGShashank_Shetkar_CV TESTING
Shashank_Shetkar_CV TESTINGShashank Shetkar
 
Sarbajit Resume - Delivery Manager QA - Test Automation Consluting
Sarbajit Resume - Delivery Manager QA - Test Automation ConslutingSarbajit Resume - Delivery Manager QA - Test Automation Consluting
Sarbajit Resume - Delivery Manager QA - Test Automation Conslutingsarbajit Chakrabarty
 
shruthi correct resume
shruthi correct resumeshruthi correct resume
shruthi correct resumeShruthi GK Rao
 
Innovation with Rapid Application Delivery
Innovation with Rapid Application DeliveryInnovation with Rapid Application Delivery
Innovation with Rapid Application DeliveryExo Futures
 
Desenvolvimento Mobile HĂ­brido
Desenvolvimento Mobile HĂ­bridoDesenvolvimento Mobile HĂ­brido
Desenvolvimento Mobile HĂ­bridoJuliano Martins
 
Please Define: Roles in User Experience Design
Please Define: Roles in User Experience DesignPlease Define: Roles in User Experience Design
Please Define: Roles in User Experience DesignSkye Sant
 
resume
resumeresume
resumeAnitha AA
 
Going web native - Feb 2018
Going web native - Feb 2018Going web native - Feb 2018
Going web native - Feb 2018Marcus Hellberg
 

Ähnlich wie Solving for complex UI designs (20)

How to Achieve Product-Market Fit with Rapid Prototyping and User Testing by ...
How to Achieve Product-Market Fit with Rapid Prototyping and User Testing by ...How to Achieve Product-Market Fit with Rapid Prototyping and User Testing by ...
How to Achieve Product-Market Fit with Rapid Prototyping and User Testing by ...
 
Design for Web and Mobile
Design for Web and MobileDesign for Web and Mobile
Design for Web and Mobile
 
susanta_resume
susanta_resumesusanta_resume
susanta_resume
 
chris-hellman-resume-2015
chris-hellman-resume-2015chris-hellman-resume-2015
chris-hellman-resume-2015
 
Praveen Vadla_Resume_2017
Praveen Vadla_Resume_2017Praveen Vadla_Resume_2017
Praveen Vadla_Resume_2017
 
Ramesh - Resume
Ramesh - ResumeRamesh - Resume
Ramesh - Resume
 
UXD / DNA - DesignMap, Inc.
UXD / DNA - DesignMap, Inc.UXD / DNA - DesignMap, Inc.
UXD / DNA - DesignMap, Inc.
 
The Art of AngularJS in 2015
The Art of AngularJS in 2015The Art of AngularJS in 2015
The Art of AngularJS in 2015
 
Play & Learn in Global UI/UX Design Competition
Play & Learn in Global UI/UX Design CompetitionPlay & Learn in Global UI/UX Design Competition
Play & Learn in Global UI/UX Design Competition
 
Resume
ResumeResume
Resume
 
Shashank_Shetkar_CV TESTING
Shashank_Shetkar_CV TESTINGShashank_Shetkar_CV TESTING
Shashank_Shetkar_CV TESTING
 
Sarbajit Resume - Delivery Manager QA - Test Automation Consluting
Sarbajit Resume - Delivery Manager QA - Test Automation ConslutingSarbajit Resume - Delivery Manager QA - Test Automation Consluting
Sarbajit Resume - Delivery Manager QA - Test Automation Consluting
 
shruthi correct resume
shruthi correct resumeshruthi correct resume
shruthi correct resume
 
Vamshi krishna kesetty
Vamshi krishna kesettyVamshi krishna kesetty
Vamshi krishna kesetty
 
sap.g - Copy
sap.g - Copysap.g - Copy
sap.g - Copy
 
Innovation with Rapid Application Delivery
Innovation with Rapid Application DeliveryInnovation with Rapid Application Delivery
Innovation with Rapid Application Delivery
 
Desenvolvimento Mobile HĂ­brido
Desenvolvimento Mobile HĂ­bridoDesenvolvimento Mobile HĂ­brido
Desenvolvimento Mobile HĂ­brido
 
Please Define: Roles in User Experience Design
Please Define: Roles in User Experience DesignPlease Define: Roles in User Experience Design
Please Define: Roles in User Experience Design
 
resume
resumeresume
resume
 
Going web native - Feb 2018
Going web native - Feb 2018Going web native - Feb 2018
Going web native - Feb 2018
 

Mehr von Magnolia

The SEO Workflow
The SEO WorkflowThe SEO Workflow
The SEO WorkflowMagnolia
 
Magnolia 6 release walkthrough
Magnolia 6 release walkthroughMagnolia 6 release walkthrough
Magnolia 6 release walkthroughMagnolia
 
Buzzword bingo: The real deal behind omnichannel, personalization and headless
Buzzword bingo: The real deal behind  omnichannel, personalization and headlessBuzzword bingo: The real deal behind  omnichannel, personalization and headless
Buzzword bingo: The real deal behind omnichannel, personalization and headlessMagnolia
 
Developing Magnolia based sites correctly, quickly and efficiently
Developing Magnolia based sites correctly, quickly and efficientlyDeveloping Magnolia based sites correctly, quickly and efficiently
Developing Magnolia based sites correctly, quickly and efficientlyMagnolia
 
Integrating e-Commerce into your Customer Experience
Integrating e-Commerce into your Customer ExperienceIntegrating e-Commerce into your Customer Experience
Integrating e-Commerce into your Customer ExperienceMagnolia
 
Customer Engagement in the Digital Era
Customer Engagement in the Digital EraCustomer Engagement in the Digital Era
Customer Engagement in the Digital EraMagnolia
 
The Age of the IOT & Digital Business
The Age of the IOT & Digital BusinessThe Age of the IOT & Digital Business
The Age of the IOT & Digital BusinessMagnolia
 
Using Magnolia in a Microservices Architecture
Using Magnolia in a Microservices ArchitectureUsing Magnolia in a Microservices Architecture
Using Magnolia in a Microservices ArchitectureMagnolia
 
A modern front end development workflow for Magnolia at Atlassian
A modern front end development workflow for Magnolia at AtlassianA modern front end development workflow for Magnolia at Atlassian
A modern front end development workflow for Magnolia at AtlassianMagnolia
 
Magnolia Conference 2015 - Pascal Mangold's keynote
Magnolia Conference 2015 - Pascal Mangold's keynoteMagnolia Conference 2015 - Pascal Mangold's keynote
Magnolia Conference 2015 - Pascal Mangold's keynoteMagnolia
 
Product keynote - introducing Magnolia 5.4
Product keynote - introducing Magnolia 5.4Product keynote - introducing Magnolia 5.4
Product keynote - introducing Magnolia 5.4Magnolia
 
Launching Magnolia on demand
Launching Magnolia on demandLaunching Magnolia on demand
Launching Magnolia on demandMagnolia
 
Front-end developers - build Magnolia sites faster
Front-end developers - build Magnolia sites fasterFront-end developers - build Magnolia sites faster
Front-end developers - build Magnolia sites fasterMagnolia
 
Magnolia and beacons: how do they work best together?
Magnolia and beacons: how do they work best together?Magnolia and beacons: how do they work best together?
Magnolia and beacons: how do they work best together?Magnolia
 
Magnolia and the IOT
Magnolia and the IOTMagnolia and the IOT
Magnolia and the IOTMagnolia
 
Internationalization for globalized enterprise websites
Internationalization for globalized enterprise websitesInternationalization for globalized enterprise websites
Internationalization for globalized enterprise websitesMagnolia
 
The new visana website how to fit a square peg into a round hole
The new visana website   how to fit a square peg into a round holeThe new visana website   how to fit a square peg into a round hole
The new visana website how to fit a square peg into a round holeMagnolia
 
Extending Magnolia with our solutions
Extending Magnolia with our solutionsExtending Magnolia with our solutions
Extending Magnolia with our solutionsMagnolia
 
Boost your online e commerce with magnolia
Boost your online e commerce with magnoliaBoost your online e commerce with magnolia
Boost your online e commerce with magnoliaMagnolia
 
The slick YAML based configuration by file in Magnolia 5.4
The slick YAML based configuration by file in Magnolia 5.4The slick YAML based configuration by file in Magnolia 5.4
The slick YAML based configuration by file in Magnolia 5.4Magnolia
 

Mehr von Magnolia (20)

The SEO Workflow
The SEO WorkflowThe SEO Workflow
The SEO Workflow
 
Magnolia 6 release walkthrough
Magnolia 6 release walkthroughMagnolia 6 release walkthrough
Magnolia 6 release walkthrough
 
Buzzword bingo: The real deal behind omnichannel, personalization and headless
Buzzword bingo: The real deal behind  omnichannel, personalization and headlessBuzzword bingo: The real deal behind  omnichannel, personalization and headless
Buzzword bingo: The real deal behind omnichannel, personalization and headless
 
Developing Magnolia based sites correctly, quickly and efficiently
Developing Magnolia based sites correctly, quickly and efficientlyDeveloping Magnolia based sites correctly, quickly and efficiently
Developing Magnolia based sites correctly, quickly and efficiently
 
Integrating e-Commerce into your Customer Experience
Integrating e-Commerce into your Customer ExperienceIntegrating e-Commerce into your Customer Experience
Integrating e-Commerce into your Customer Experience
 
Customer Engagement in the Digital Era
Customer Engagement in the Digital EraCustomer Engagement in the Digital Era
Customer Engagement in the Digital Era
 
The Age of the IOT & Digital Business
The Age of the IOT & Digital BusinessThe Age of the IOT & Digital Business
The Age of the IOT & Digital Business
 
Using Magnolia in a Microservices Architecture
Using Magnolia in a Microservices ArchitectureUsing Magnolia in a Microservices Architecture
Using Magnolia in a Microservices Architecture
 
A modern front end development workflow for Magnolia at Atlassian
A modern front end development workflow for Magnolia at AtlassianA modern front end development workflow for Magnolia at Atlassian
A modern front end development workflow for Magnolia at Atlassian
 
Magnolia Conference 2015 - Pascal Mangold's keynote
Magnolia Conference 2015 - Pascal Mangold's keynoteMagnolia Conference 2015 - Pascal Mangold's keynote
Magnolia Conference 2015 - Pascal Mangold's keynote
 
Product keynote - introducing Magnolia 5.4
Product keynote - introducing Magnolia 5.4Product keynote - introducing Magnolia 5.4
Product keynote - introducing Magnolia 5.4
 
Launching Magnolia on demand
Launching Magnolia on demandLaunching Magnolia on demand
Launching Magnolia on demand
 
Front-end developers - build Magnolia sites faster
Front-end developers - build Magnolia sites fasterFront-end developers - build Magnolia sites faster
Front-end developers - build Magnolia sites faster
 
Magnolia and beacons: how do they work best together?
Magnolia and beacons: how do they work best together?Magnolia and beacons: how do they work best together?
Magnolia and beacons: how do they work best together?
 
Magnolia and the IOT
Magnolia and the IOTMagnolia and the IOT
Magnolia and the IOT
 
Internationalization for globalized enterprise websites
Internationalization for globalized enterprise websitesInternationalization for globalized enterprise websites
Internationalization for globalized enterprise websites
 
The new visana website how to fit a square peg into a round hole
The new visana website   how to fit a square peg into a round holeThe new visana website   how to fit a square peg into a round hole
The new visana website how to fit a square peg into a round hole
 
Extending Magnolia with our solutions
Extending Magnolia with our solutionsExtending Magnolia with our solutions
Extending Magnolia with our solutions
 
Boost your online e commerce with magnolia
Boost your online e commerce with magnoliaBoost your online e commerce with magnolia
Boost your online e commerce with magnolia
 
The slick YAML based configuration by file in Magnolia 5.4
The slick YAML based configuration by file in Magnolia 5.4The slick YAML based configuration by file in Magnolia 5.4
The slick YAML based configuration by file in Magnolia 5.4
 

KĂŒrzlich hochgeladen

How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfayushiqss
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
Chinsurah Escorts ☎8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎8617697112 Starting From 5K to 15K High Profile Escorts ...Nitya salvi
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfryanfarris8
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxalwaysnagaraju26
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyAnusha Are
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 

KĂŒrzlich hochgeladen (20)

How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Chinsurah Escorts ☎8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎8617697112 Starting From 5K to 15K High Profile Escorts ...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodology
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 

Solving for complex UI designs