SlideShare una empresa de Scribd logo
1 de 57
Typographie to go! 
Benjamin Reimold
About me 
Codenauts GmbH 
www.codenauts.com 
Überall (Stuttgart – Berlin) 
! 
Benjamin Reimold 
benjamin@hockeyapp.net 
@elektrojunge 
elektrojunge.de 
! 
MobileMaultaschen.de
Above all, text must be legible. If users can’t read the words in 
your app, it doesn’t matter how beautiful the typography is. 
– Apple Human Interface Guidelines
The Android design language relies on traditional typographic 
tools such as scale, space, rhythm, and alignment with an 
underlying grid. Successful deployment of these tools is essential 
to help users quickly understand a screen of information. 
– Design Guideline for Android by Google
Typography is at the heart of the Microsoft design language. Each 
of the Microsoft design principles reinforces the importance of 
typography. 
– Guidelines for Typography by Microsoft
Der Mensch vor dem Bildschirm wird 
immer nach einem Grund suchen, 
die App nicht benutzen zu „müssen“.
Kickstart: Typographie
Typogra…WAS?!E!NS11!
Schrift 
Das Aussehen von Zeichen und Symbolen 
Font 
Die physische Repräsentation der Schrift 
Glyphe 
Die Darstellung eines Schriftzeichens
Display-Schrift
k-Linie H-Linie 
x-Linie Typographie 
Grundlinie p-Linie
Kerning 
Weitere Begriffe 
Ligatur
http://shahirzag.com/post/31387507569/sacrilege-in-helvetica-bold 
Serifen 
Monospace 
Sperrsatz 
Zeilenabstand
This is not a typeface. It’s a tossed salad. Or a four-headed 
Frankenstein. You never know which personality you’ll get. 
- Stephen Coles (typographica.org)
Die neue Roboto 
https://plus.google.com/+googledesign/posts/Gfd7FRskeHm
Wähle die richtige Schrift!
It’s a MONOTYPE to rule them all!
Howto lie down layout 
https://www.flickr.com/photos/superfantastic/65578354
Look, just because I don't be givin' no man a foot massage don't make it right for Marsellus to throw Antwone into a glass motherfuckin' 
house, fuckin' up the way the nigger talks. Motherfucker do that shit to me, he better paralyze my ass, 'cause I'll kill the motherfucker, 
know what I'm sayin'?Look, just because I don't be givin' no man a foot massage don't make it right for Marsellus to throw Antwone glass motherfuckin' house, fuckin' up the way the nigger talks. Motherfucker do that shit to me, he better paralyze my ass, 'cause I'll the motherfucker, know what I'm sayin’? The path of the righteous man is beset on all sides by the iniquities of the selfish and the tyranny 
evil men. Blessed is he who, in the name of charity and good will, shepherds the weak through the valley of darkness, for he is truly brother's keeper and the finder of lost children. And I will strike down upon thee with great vengeance and furious anger those who attempt to poison and destroy My brothers. And you will know My name is the Lord when I lay My vengeance upon thee. Look, just 
because I don't be givin' no man a foot massage don't make it right for Marsellus to throw Antwone into a glass motherfuckin' house, 
fuckin' up the way the nigger talks. Motherfucker do that shit to me, he better paralyze my ass, 'cause I'll kill the motherfucker, know I'm sayin’? You think water moves fast? You should see ice. It moves like it has a mind.Like it knows it killed the world once and got for murder. After the avalanche, it took us a week to climb out. Now, I don't know exactly when we turned on each other, but I know seven of us survived the slide... and only five made it out. Now we took an oath, that I'm breaking that killed the other two, but it Lorem wasn't. Nature is lethal Ipsum but it doesn't hold a Dolor candle to man. Look, Sic 
now. We said we'd say it was the snow 
just because I don't be givin' no man foot massage don't make it right for Marsellus to throw Antwone into a glass motherfuckin' house, fuckin' up the way the nigger talks. 
Motherfucker do that shit to me, he better paralyze my ass, 'cause I'll kill the motherfucker, know what I'm sayin'?Look, just because don't be givin' no man a foot massage don't make it right for Marsellus to throw Antwone into a glass motherfuckin' house, fuckin' up way the nigger talks. Motherfucker do that shit to me, he better paralyze my ass, 'cause I'll kill the motherfucker, know what I'm sayin’? 
The path of the righteous man is beset on all sides by the iniquities of the selfish and the tyranny of evil men. Blessed is he who, in name of charity and good will, shepherds the weak through the valley of darkness, for he is truly his brother's keeper and the finder lost children. And I will strike down upon thee with great vengeance and furious anger those who would attempt to poison and destroy brothers. And you will know My name is the Lord when I lay My vengeance upon thee. Look, just because I don't be givin' no man a foot 
massage don't make it right for Marsellus to throw Antwone into a glass motherfuckin' house, fuckin' up the way the nigger talks. 
Motherfucker do that shit to me, he better paralyze my ass, 'cause I'll kill the motherfucker, know what I'm sayin’? You think water moves 
fast? You should see ice. It moves like it has a mind.Like it knows it killed the world once and got a taste for murder. After the avalanche, took us a week to climb out. Now, I don't know exactly when we turned on each other, but I know that seven of us survived the slide... only five made it out. Now we took an oath, that I'm breaking now. We said we'd say it was the snow that killed the other two, but it Nature is lethal but it doesn't hold a candle to man.
Rechtschreibung, macht sexy. 
Richtige Zeichenwal – ebenfalls´.
Zusammengefasst: 
• Typographie ist wichtig! 
• Schrift - Font - Glyphen 
• Linien, Serifen & Ko. 
• Mit Typographie scherzt man nicht. 
• „Welchen Font hätten Sie denn gern?“ 
• Howto layout 
• Kennsch du Sprache!
Typographie unter iOS
UIWebView 
NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"somePage" 
ofType:@"html"]; 
NSString *htmlString = [NSString stringWithContentsOfFile:htmlFile 
encoding:NSUTF8StringEncoding 
error:nil]; 
[self.awesomeWebView loadHTMLString:htmlString baseURL:nil];
Native Typographie 
iOS 3.2 / iOS 4 
CoreText & NSAttributedString 
iOS 6 
UILabel & UITextView support NSAttributedString 
iOS 7 
TextKit
Storyboard
NSHTMLTextDocumentType 
NSDictionary *options = @{NSDocumentTypeDocumentAttribute: 
NSHTMLTextDocumentType}  ; 
NSAttributedString *stringWithHTMLAttributes = 
[[NSAttributedString alloc] initWithFileURL:url 
options:options 
documentAttributes:nil 
error:nil]; 
! 
[self.justSomeLabel setAttributedText:stringWithHTMLAttributes];
Markdown!
NSString *markdown = [NSString stringWithContentsOfFile:path 
encoding:NSUTF8StringEncoding 
error:nil]; 
NSString *html = [MMMarkdown HTMLStringWithMarkdown:markdown error:nil]; 
! 
NSDictionary *options = @{NSDocumentTypeDocumentAttribute: 
NSHTMLTextDocumentType}; 
! 
NSError *error; 
NSAttributedString *formatted = [[NSAttributedString alloc] 
initWithData:[html dataUsingEncoding:NSUTF16StringEncoding] 
options:options 
documentAttributes:nil 
error:&error]; 
! 
self.awesomTextView.attributedText = formatted;
Markdown!
DTCoreText
Codenauts töten gerne böse Käfermit HockeyApp.
NSAttributedString 
Codenauts töten gerne böse Käfer 
mit HockeyApp. 
NSString *text = @"Codenauts töten gerne böse Käfer mit HockeyApp.“; 
! 
NSDictionary *attrs = 
@{ NSFontAttributeName : [UIFont systemFontOfSize:36]}; 
! 
NSMutableAttributedString *as = [[NSMutableAttributedString alloc] 
initWithString:text 
attributes:attrs];
Codenauts töten gerne böse Käfer 
mit HockeyApp. 
[as addAttribute:NSFontAttributeName value:[UIFont boldSystemFontOfSize: 
36] range:[text rangeOfString:@"Codenauts"]]; 
! 
[as addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] 
range:[text rangeOfString:@"gerne"]]; 
! 
[as addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:18] 
range:[text rangeOfString:@"Käfer"]]; 
! 
[as addAttribute:NSBackgroundColorAttributeName value:[UIColor 
purpleColor] range:[text rangeOfString:@"mit HockeyApp"]]; 
! 
UIFont *awesomeFont = [UIFont fontWithName:@"AmericanTypewriter" size: 
27.0f]; 
! 
[as addAttribute:NSFontAttributeName value:awesomeFont range:[text 
rangeOfString:@"HockeyApp"]]; 
! 
self.awesomeTextView.attributedText = as;
4 Debugging 
NSRange range = NSMakeRange (0, as.length); 
[as enumerateAttributesInRange: range 
options: 0 
usingBlock: ^(NSDictionary *attributes, 
NSRange range, BOOL *stop) { 
NSLog (@"range: %@ attributes: %@", NSStringFromRange(range), 
attributes); 
}]; 
2014-08-31 12:07:23.503 TypographieToGo[5831:367954] 
range: {37, 9} attributes: { 
NSBackgroundColor = "UIDeviceRGBColorSpace 0.5 0 0.5 1"; 
NSFont = "<UICTFont: 0x7fafd41017a0> font-family: "American 
Typewriter"; font-weight: normal; font-style: normal; font-size: 
27.00pt"; 
}
You think water moves fast? You should see ice. It moves like it has a mind. Like it knows it killed the 
world once and got a taste for murder. After the avalanche, it took us a week to climb out. Now, I don't know 
exactly when we turned on each other, but I know that seven of us survived the slide... and only five made it 
out. Now we took an oath, that I'm breaking now. We said we'd say it was the snow that killed the other two, 
but it wasn't. Nature is lethal but it doesn't hold a candle to man. 
The path of the righteous man is beset on all sides by the iniquities of the selfish and the 
tyranny of evil men. Blessed is he who, in the name of charity and good will, shepherds the weak 
through the valley of darkness, for he is truly his brother's keeper and the finder of lost children. And I 
will strike down upon thee with great vengeance and furious anger those who would attempt to poison 
and destroy My brothers. And you will know My name is the Lord when I lay My vengeance upon thee. 
You think water moves fast? You should see ice. It moves like it has a mind. Like it knows it killed the 
world once and got a taste for murder. After the avalanche, it took us a week to climb out. Now, I don't know 
exactly when we turned on each other, but I know that seven of us survived the slide... and only five made it 
out. Now we took an oath, that I'm breaking now. We said we'd say it was the snow that killed the other two, 
but it wasn't. Nature is lethal but it doesn't hold a candle to man.
NSParagraphStyleAttributeName 
NSMutableParagraphStyle *generalStyle = [[NSMutableParagraphStyle alloc] 
init]; 
[generalStyle setParagraphSpacing:27.0]; 
[generalStyle setFirstLineHeadIndent:10.0]; 
[generalStyle setAlignment:NSTextAlignmentJustified]; 
! 
NSMutableAttributedString *formatted = [[NSMutableAttributedString alloc] 
initWithString:slipsumText 
attributes:@{NSParagraphStyleAttributeName: generalStyle}];
NSParagraphStyleAttributeName 
NSUInteger secondParagraphStart = NSMaxRange([formatted.string 
rangeOfString:@"n" ]); 
NSMutableParagraphStyle *secondParagraphStyle = 
[[formatted attribute:NSParagraphStyleAttributeName 
atIndex:secondParagraphStart 
effectiveRange:NULL] mutableCopy]; 
secondParagraphStyle.headIndent += 20.0; 
secondParagraphStyle.firstLineHeadIndent += 20.0; 
secondParagraphStyle.tailIndent -= 20.0; 
! 
[formatted addAttribute:NSParagraphStyleAttributeName 
value:secondParagraphStyle 
range:NSMakeRange(secondParagraphStart, 1)]; 
! 
self.awesomeTV.attributedText = formatted;
Dynamic Type 
+ (UIFont *) preferredFontForTextStyle: (NSString *)style 
UIContentSizeCategoryDidChangeNotification 
- (void)userChangedTextSize:(NSNotification *)notification { 
self.awesomeLab.font = [UIFont 
preferredFontForTextStyle:UIFontTextStyleBody]; 
} 
@property (nonatomic, readonly) NSString*preferredContentSizeCategory;
Geht’s auch dynamisch?! 
https://www.flickr.com/photos/tudor/7305737304
MTStringAttributes 
Codenauts töten gerne böse Käfermit HockeyApp. 
MTStringAttributes *general = [MTStringAttributes new]; 
general.font = [UIFont systemFontOfSize:36]; 
general.textColor = [UIColor redColor]; 
general.kern = 0.8f;
MTStringParser *parser = [MTStringParser sharedParser]; 
[parser setDefaultAttributes:general]; 
[parser addStyleWithTagName:@"codenauts" font:[UIFont 
boldSystemFontOfSize:36]]; 
[parser addStyleWithTagName:@"gerne" font:sysFont color:[UIColor 
redColor]]; 
[parser addStyleWithTagName:@"bugs" font:[UIFont systemFontOfSize:18]]; 
[parser addStyleWithTagName:@"mit" 
font:sysFont 
color:black 
backgroundColor:[UIColor purpleColor] 
strikethrough:NO 
underline:NO]; 
[parser addStyleWithTagName:@"HockeyApp" 
font:[UIFont fontWithName:@"AmericanTypewriter" 
size:27.0f]]; 
NSString *markup = @"<codenauts>Codenauts</codenauts> töten <gerne>gerne</ 
gerne> böse <bugs>Käfer</bugs> <mit>mit <HockeyApp>HockeyApp</HockeyApp></ 
mit>."; 
NSAttributedString *attributedString = [[MTStringParser sharedParser] 
attributedStringFromMarkup:markup];
TTTAttributedLabel 
- (void) basicFormatting { 
self.tttAttributedLabel.numberOfLines = 0; 
self.tttAttributedLabel.textAlignment = NSTextAlignmentLeft; 
self.tttAttributedLabel.lineBreakMode = NSLineBreakByWordWrapping; 
self.tttAttributedLabel.backgroundColor = [UIColor clearColor]; 
self.tttAttributedLabel.textInsets = 
(UIEdgeInsets){ .left = 10, .top = 10, .right = 10, .bottom = 10 }; 
} 
@property (nonatomic, strong) NSDictionary *linkAttributes; 
NSDictionary *linkAttributes = 
[NSDictionary dictionaryWithObjectsAndKeys: 
(__bridge id) fontColor.CGColor, (__bridge NSString *) kCTForegroundColorAttributeName, 
headerCTFont, (__bridge NSString *) kCTFontAttributeName, 
@(kCTUnderlineStyleSingle), (__bridge NSString *) kCTUnderlineStyleAttributeName, 
(__bridge id) paragraphRef, (__bridge id) kCTParagraphStyleAttributeName, 
NULL]; 
- (void)attributedLabel:(TTTAttributedLabel *)label didSelectLinkWithURL:(NSURL *)url;
CoreText? 
https://www.flickr.com/photos/superfantastic/65578354
You think water moves fast? You 
should see ice. It moves like it has a 
mind. Like it knows it killed the world 
once and got a taste for murder. After 
the avalanche, it took us a week to 
climb out. Now, I don't know exactly 
when we turned on each other, but I 
know that seven of us survived the 
slide... and only five made it out. Now 
we took an oath, that I'm breaking 
now. We said we'd say it was the snow 
that killed the other two, but it 
wasn't. Nature is lethal but it doesn't 
hold a candle to man. You think water 
moves fast? You should see ice. It 
moves like it has a mind. Like it 
knows it killed the world once and 
got a taste for murder. After the 
avalanche, it took us a week to climb 
out. Now, I don't know exactly when 
we turned on each other, but I know 
that seven of us survived the slide... 
and only five made it out. Now we 
took an oath, that I'm breaking now. 
We said we'd say it was the snow that 
killed the other two, but it wasn't. 
Nature is lethal but it doesn't hold a 
candle to man. You think water moves 
fast? You should see ice. It moves like 
it has a mind. Like it knows it killed 
the world once and got a taste for 
murder. After the avalanche, it took 
us a week to climb out. Now, I don't 
know exactly when we turned on each 
other, but I know that seven of us 
survived the slide... and only five 
made it out. Now we took an oath, 
that I'm breaking now. We said we'd 
say it was the snow that killed the 
other two, but it wasn't. Nature is 
lethal but it doesn't hold a candle to 
man. You think water moves fast? You 
should see ice. It moves like it has a 
mind. Like it knows it killed the world 
once and got a taste for murder. After 
the avalanche, it took us a week to 
climb out. Now, I don't know exactly 
when we turned on each other, but I 
know that seven of us survived the 
slide... and only five made it out. Now 
we took an oath, that I'm breaking 
now. We said we'd say it was the snow 
that killed the other two, but it 
wasn't. Nature is lethal but it doesn't 
hold a candle to man. You think water 
moves fast? You should see ice. It 
moves like it has a mind. Like it 
knows it killed the world once and 
got a taste for murder. After the 
avalanche, it took us a week to climb 
out. Now, I don't know exactly when 
we turned on each other, but I know 
that seven of us survived the slide... 
and only five made it out. Now we 
took an oath, that I'm breaking now. 
We said we'd say it was the snow that 
killed the other two, but it wasn't. 
Nature is lethal but it doesn't hold a 
candle to man.
So, Core-Text. 
Framesetter 
! 
Typesetter 
! 
Line 
! 
Run 
! 
Glyph
// in drawRect: 
// Init context and matrix 
CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextSetTextMatrix(context, CGAffineTransformIdentity); 
! 
CFAttributedStringRef attrString = (__bridge CFTypeRef) self.attributedString; 
CTFramesetterRef framesetter = 
CTFramesetterCreateWithAttributedString(attrString); 
! 
CFArrayRef paths = [self copyPaths]; 
CFIndex pathCount = CFArrayGetCount(paths); 
CFIndex charIndex = 0; 
for(CFIndex pathIndex = 0; pathIndex < pathCount; ++pathIndex) { 
CGPathRef path = CFArrayGetValueAtIndex(paths, pathIndex); 
CTFrameRef frame = CTFramesetterCreateFrame(framesetter, 
CFRangeMake(charIndex, 0), 
path, 
NULL); 
CTFrameDraw(frame, context); 
CFRange frameRange = CTFrameGetVisibleStringRange(frame); 
charIndex += frameRange.length; 
CFRelease(frame); 
} 
CFRelease(paths); 
CFRelease(framesetter);
Alberner Kram geht auch ;-) 
You think water moves fast? You 
should see ice. It moves like it has a mind. Like it knows it killed the world once and got a taste for murder. 
After the avalanche, it took us a week to climb out. Now, I don't know exactly when we turned on each other, 
but I know that seven of us survived the slide... and only five made it out. Now we took an oath, that I'm 
breaking now. We said we'd say it was the snow that killed the other two, but it wasn't. Nature is lethal but it 
doesn't hold a candle to man. You think water moves fast? You should see ice. It moves like 
it has a mind. Like it knows it killed the world once and got a taste for murder. After the 
avalanche, it took us a week to climb out. Now, I don't know exactly when we turned 
on each other, but I know that seven of us survived the slide... and only five made it 
out. Now we took an oath, that I'm breaking now. We said we'd say it was the snow 
that killed the other two, but it wasn't. Nature is lethal but it doesn't hold a candle to 
man. You think water moves fast? You should see ice. It moves like it has a mind. Like it 
knows it killed the world once and got a taste for murder. After the avalanche, it took us a 
week to climb out. Now, I don't know exactly when we turned on each other, but I know that seven 
of us survived the slide... and only five made it out. Now we took an oath, that I'm breaking now. After the 
avalanche, it took us a week to climb out. Now, I don't know exactly when we turned on each other, but I know 
that seven of us survived the slide... and only five made it out. Now we took an oath, that I'm breaking now. We 
said we'd say it was the snow that killed the other two, but it wasn't. Nature is lethal but it doesn't hold a candle
TextKit -> Yay!
Alberner Kram geht auch ;-) 
You think water moves fast? You 
should see ice. It moves like it has a mind. Like it knows it killed the world once and got a taste for murder. 
After the avalanche, it took us a week to climb out. Now, I don't know exactly when we turned on each other, 
but I know that seven of us survived the slide... and only five made it out. Now we took an oath, that I'm 
breaking now. We said we'd say it was the snow that killed the other two, but it wasn't. Nature is lethal but it 
doesn't hold a candle to man. You think water moves fast? You should see ice. It moves like 
UIBezierPath *pathForRoundView = 
it has a mind. Like it knows it killed the world once and got a taste for murder. After the 
[self.avalanche, roundView it took us curvePathWithOrigin:a week to climb out. Now, I don't self.know roundView.exactly when center]; 
we turned 
on each other, but I know that seven of us survived the slide... and only five made it 
out. Now we took an oath, that I'm breaking now. We said we'd say it was the snow 
that killed the other two, but it wasn't. Nature is lethal but it doesn't hold a candle to 
man. You think water moves fast? You should see ice. It moves like it has a mind. Like it 
knows it killed the world once and got a taste for murder. After the avalanche, it took us a 
self.awesomeTV.textContainer.exclusionPaths = @[pathForRoundView]; 
week to climb out. Now, I don't know exactly when we turned on each other, but I know that seven 
of us survived the slide... and only five made it out. Now we took an oath, that I'm breaking now. After the 
avalanche, it took us a week to climb out. Now, I don't know exactly when we turned on each other, but I know 
that seven of us survived the slide... and only five made it out. Now we took an oath, that I'm breaking now. We 
said we'd say it was the snow that killed the other two, but it wasn't. Nature is lethal but it doesn't hold a candle
TextKit 
NSLayoutManager 
eigener NSTextStorage aka „Container für NSAttributedString“ 
NSTextContainer 
Codenauts töten gerne böse Käfermit HockeyApp.
Android
WebView 
HTML.fromHtml(String resource) 
TextView + SpannableStringBuilder 
canvas.drawText(….) ? 
android.text.style
Zusammengefasst: 
• iOS7+ Typographie macht so richtig Spaß 
• NSAttributedString für Schrift & Zeichen 
• TextKit für Layout 
• CoreText für die letzten 5%? 
• <iOS7 NSAttributedString + Yak Shaving 
• Android: kann Html-style Typographie
Danke für’s zuhören! 
Codenauts GmbH 
www.codenauts.com 
Überall (Stuttgart – Berlin) 
! 
Benjamin Reimold 
benjamin@hockeyapp.net 
@elektrojunge 
elektrojunge.de 
Fragen?

Más contenido relacionado

Destacado

LinuxTag 2007: Linux im Bundesministerium des Inneren bei der Fußball WM 2006
LinuxTag 2007: Linux im Bundesministerium des Inneren bei der Fußball WM 2006LinuxTag 2007: Linux im Bundesministerium des Inneren bei der Fußball WM 2006
LinuxTag 2007: Linux im Bundesministerium des Inneren bei der Fußball WM 2006Schlomo Schapiro
 
Sprungbrett Event Aarau 2010
Sprungbrett Event Aarau 2010Sprungbrett Event Aarau 2010
Sprungbrett Event Aarau 2010Malte Polzin
 
Frohe Weihnachten 2009
Frohe Weihnachten 2009Frohe Weihnachten 2009
Frohe Weihnachten 2009lorchensppts
 
Open Source Software Made by ImmobilienScout24 Freigabeprozess
Open Source Software Made by ImmobilienScout24 FreigabeprozessOpen Source Software Made by ImmobilienScout24 Freigabeprozess
Open Source Software Made by ImmobilienScout24 FreigabeprozessSchlomo Schapiro
 
Anwenderbericht Volkswagen Financial Services
Anwenderbericht Volkswagen Financial ServicesAnwenderbericht Volkswagen Financial Services
Anwenderbericht Volkswagen Financial ServicesUniserv
 
SUITES
SUITESSUITES
SUITESilian
 
Jessica
JessicaJessica
JessicaJESICA
 
Web 2 0 Im Unternehmen Und Wissensmanagement
Web 2 0 Im Unternehmen Und WissensmanagementWeb 2 0 Im Unternehmen Und Wissensmanagement
Web 2 0 Im Unternehmen Und WissensmanagementIsabella Peters
 
Mobile Marketing - Status 2010 & Trends 2011
Mobile Marketing - Status 2010 & Trends 2011Mobile Marketing - Status 2010 & Trends 2011
Mobile Marketing - Status 2010 & Trends 2011Woodapples
 
Schiffseditor special items
Schiffseditor   special itemsSchiffseditor   special items
Schiffseditor special itemsphyke
 
LinuxTag 2007 - Linux im Bundesministerium des Inneren bei der Fußball WM 2006
LinuxTag 2007 - Linux im Bundesministerium des Inneren bei der Fußball WM 2006LinuxTag 2007 - Linux im Bundesministerium des Inneren bei der Fußball WM 2006
LinuxTag 2007 - Linux im Bundesministerium des Inneren bei der Fußball WM 2006Schlomo Schapiro
 
Die 4 P’s sind tot – Es leben die 8C’s im E-Business
Die 4 P’s sind tot – Es leben die 8C’s im E-BusinessDie 4 P’s sind tot – Es leben die 8C’s im E-Business
Die 4 P’s sind tot – Es leben die 8C’s im E-BusinessMalte Polzin
 
Workshop: Kreatives Problemlösen und Wissensgenerierung - Arbeitsblaetter
Workshop: Kreatives Problemlösen und Wissensgenerierung - ArbeitsblaetterWorkshop: Kreatives Problemlösen und Wissensgenerierung - Arbeitsblaetter
Workshop: Kreatives Problemlösen und Wissensgenerierung - ArbeitsblaetterHeidrun Allert
 
Dem Markt voraus - Wettbewerbsbeobachtung mittels Social Media Monitoring #SMWHH
Dem Markt voraus - Wettbewerbsbeobachtung mittels Social Media Monitoring #SMWHHDem Markt voraus - Wettbewerbsbeobachtung mittels Social Media Monitoring #SMWHH
Dem Markt voraus - Wettbewerbsbeobachtung mittels Social Media Monitoring #SMWHHVolker Davids
 
Tareatutorialespowerpoint
TareatutorialespowerpointTareatutorialespowerpoint
Tareatutorialespowerpointdgavilanesr77
 

Destacado (20)

LinuxTag 2007: Linux im Bundesministerium des Inneren bei der Fußball WM 2006
LinuxTag 2007: Linux im Bundesministerium des Inneren bei der Fußball WM 2006LinuxTag 2007: Linux im Bundesministerium des Inneren bei der Fußball WM 2006
LinuxTag 2007: Linux im Bundesministerium des Inneren bei der Fußball WM 2006
 
Sprungbrett Event Aarau 2010
Sprungbrett Event Aarau 2010Sprungbrett Event Aarau 2010
Sprungbrett Event Aarau 2010
 
Warum Werte
Warum WerteWarum Werte
Warum Werte
 
Frohe Weihnachten 2009
Frohe Weihnachten 2009Frohe Weihnachten 2009
Frohe Weihnachten 2009
 
Open Source Software Made by ImmobilienScout24 Freigabeprozess
Open Source Software Made by ImmobilienScout24 FreigabeprozessOpen Source Software Made by ImmobilienScout24 Freigabeprozess
Open Source Software Made by ImmobilienScout24 Freigabeprozess
 
Anwenderbericht Volkswagen Financial Services
Anwenderbericht Volkswagen Financial ServicesAnwenderbericht Volkswagen Financial Services
Anwenderbericht Volkswagen Financial Services
 
Riechers farm
Riechers farmRiechers farm
Riechers farm
 
FunctionalDMU –virtuelle mechatronische Modelle werden erlebbar
FunctionalDMU –virtuelle mechatronische Modelle werden erlebbarFunctionalDMU –virtuelle mechatronische Modelle werden erlebbar
FunctionalDMU –virtuelle mechatronische Modelle werden erlebbar
 
SUITES
SUITESSUITES
SUITES
 
Finlandia
FinlandiaFinlandia
Finlandia
 
Jessica
JessicaJessica
Jessica
 
Web 2 0 Im Unternehmen Und Wissensmanagement
Web 2 0 Im Unternehmen Und WissensmanagementWeb 2 0 Im Unternehmen Und Wissensmanagement
Web 2 0 Im Unternehmen Und Wissensmanagement
 
Mobile Marketing - Status 2010 & Trends 2011
Mobile Marketing - Status 2010 & Trends 2011Mobile Marketing - Status 2010 & Trends 2011
Mobile Marketing - Status 2010 & Trends 2011
 
Schiffseditor special items
Schiffseditor   special itemsSchiffseditor   special items
Schiffseditor special items
 
LinuxTag 2007 - Linux im Bundesministerium des Inneren bei der Fußball WM 2006
LinuxTag 2007 - Linux im Bundesministerium des Inneren bei der Fußball WM 2006LinuxTag 2007 - Linux im Bundesministerium des Inneren bei der Fußball WM 2006
LinuxTag 2007 - Linux im Bundesministerium des Inneren bei der Fußball WM 2006
 
Blog mami 2012
Blog mami 2012Blog mami 2012
Blog mami 2012
 
Die 4 P’s sind tot – Es leben die 8C’s im E-Business
Die 4 P’s sind tot – Es leben die 8C’s im E-BusinessDie 4 P’s sind tot – Es leben die 8C’s im E-Business
Die 4 P’s sind tot – Es leben die 8C’s im E-Business
 
Workshop: Kreatives Problemlösen und Wissensgenerierung - Arbeitsblaetter
Workshop: Kreatives Problemlösen und Wissensgenerierung - ArbeitsblaetterWorkshop: Kreatives Problemlösen und Wissensgenerierung - Arbeitsblaetter
Workshop: Kreatives Problemlösen und Wissensgenerierung - Arbeitsblaetter
 
Dem Markt voraus - Wettbewerbsbeobachtung mittels Social Media Monitoring #SMWHH
Dem Markt voraus - Wettbewerbsbeobachtung mittels Social Media Monitoring #SMWHHDem Markt voraus - Wettbewerbsbeobachtung mittels Social Media Monitoring #SMWHH
Dem Markt voraus - Wettbewerbsbeobachtung mittels Social Media Monitoring #SMWHH
 
Tareatutorialespowerpoint
TareatutorialespowerpointTareatutorialespowerpoint
Tareatutorialespowerpoint
 

Similar a Typographie to go! @ Mobile Tech Con 2014, Berlin

Slideshare Pro Disable Transcript
Slideshare Pro Disable TranscriptSlideshare Pro Disable Transcript
Slideshare Pro Disable Transcripttest prod1
 
If you can
If you canIf you can
If you canIIIM
 
MARGARET Yknow--your brother Gooper still cherishes the illu.docx
MARGARET Yknow--your brother Gooper still cherishes the illu.docxMARGARET Yknow--your brother Gooper still cherishes the illu.docx
MARGARET Yknow--your brother Gooper still cherishes the illu.docxtienboileau
 
Final Project Greek Myth2
Final Project   Greek Myth2Final Project   Greek Myth2
Final Project Greek Myth2EssexAce
 
Lorem Ipsum Texts
Lorem Ipsum TextsLorem Ipsum Texts
Lorem Ipsum TextsArjun Patel
 
P13-5A – P646Changes in various ratios presented below is selec.docx
P13-5A – P646Changes in various ratios presented below is selec.docxP13-5A – P646Changes in various ratios presented below is selec.docx
P13-5A – P646Changes in various ratios presented below is selec.docxgerardkortney
 
What Is Business Ethics Essay. Business Ethics Essay Examples Sitedoct.org
What Is Business Ethics Essay. Business Ethics Essay Examples  Sitedoct.orgWhat Is Business Ethics Essay. Business Ethics Essay Examples  Sitedoct.org
What Is Business Ethics Essay. Business Ethics Essay Examples Sitedoct.orgCarolyn Wagner
 
A Manual For Writers Of Term Papers & Dissertatio
A Manual For Writers Of Term Papers & DissertatioA Manual For Writers Of Term Papers & Dissertatio
A Manual For Writers Of Term Papers & DissertatioSarah Mitchell
 
Danger! High Voltage
Danger! High VoltageDanger! High Voltage
Danger! High Voltagesimscribe
 
The 5 Questions 1. Draw a production possibilities frontier.docx
The 5 Questions 1. Draw a production possibilities frontier.docxThe 5 Questions 1. Draw a production possibilities frontier.docx
The 5 Questions 1. Draw a production possibilities frontier.docxmehek4
 
Essay Writer AI - Essays - TAAFT
Essay Writer AI - Essays - TAAFTEssay Writer AI - Essays - TAAFT
Essay Writer AI - Essays - TAAFTLucie Nicolas
 
Durarara!!x5 by narita ryohgo
Durarara!!x5 by narita ryohgoDurarara!!x5 by narita ryohgo
Durarara!!x5 by narita ryohgoseiyuuki
 

Similar a Typographie to go! @ Mobile Tech Con 2014, Berlin (14)

Slideshare Pro Disable Transcript
Slideshare Pro Disable TranscriptSlideshare Pro Disable Transcript
Slideshare Pro Disable Transcript
 
Document1
Document1Document1
Document1
 
If you can
If you canIf you can
If you can
 
MARGARET Yknow--your brother Gooper still cherishes the illu.docx
MARGARET Yknow--your brother Gooper still cherishes the illu.docxMARGARET Yknow--your brother Gooper still cherishes the illu.docx
MARGARET Yknow--your brother Gooper still cherishes the illu.docx
 
Final Project Greek Myth2
Final Project   Greek Myth2Final Project   Greek Myth2
Final Project Greek Myth2
 
Arrow Rock_Fall2015
Arrow Rock_Fall2015Arrow Rock_Fall2015
Arrow Rock_Fall2015
 
Lorem Ipsum Texts
Lorem Ipsum TextsLorem Ipsum Texts
Lorem Ipsum Texts
 
P13-5A – P646Changes in various ratios presented below is selec.docx
P13-5A – P646Changes in various ratios presented below is selec.docxP13-5A – P646Changes in various ratios presented below is selec.docx
P13-5A – P646Changes in various ratios presented below is selec.docx
 
What Is Business Ethics Essay. Business Ethics Essay Examples Sitedoct.org
What Is Business Ethics Essay. Business Ethics Essay Examples  Sitedoct.orgWhat Is Business Ethics Essay. Business Ethics Essay Examples  Sitedoct.org
What Is Business Ethics Essay. Business Ethics Essay Examples Sitedoct.org
 
A Manual For Writers Of Term Papers & Dissertatio
A Manual For Writers Of Term Papers & DissertatioA Manual For Writers Of Term Papers & Dissertatio
A Manual For Writers Of Term Papers & Dissertatio
 
Danger! High Voltage
Danger! High VoltageDanger! High Voltage
Danger! High Voltage
 
The 5 Questions 1. Draw a production possibilities frontier.docx
The 5 Questions 1. Draw a production possibilities frontier.docxThe 5 Questions 1. Draw a production possibilities frontier.docx
The 5 Questions 1. Draw a production possibilities frontier.docx
 
Essay Writer AI - Essays - TAAFT
Essay Writer AI - Essays - TAAFTEssay Writer AI - Essays - TAAFT
Essay Writer AI - Essays - TAAFT
 
Durarara!!x5 by narita ryohgo
Durarara!!x5 by narita ryohgoDurarara!!x5 by narita ryohgo
Durarara!!x5 by narita ryohgo
 

Más de Benny Reimold

Quo Vadis Argumentum Mobile? Morgen ist heute schon gestern.
Quo Vadis Argumentum Mobile? Morgen ist heute schon gestern.Quo Vadis Argumentum Mobile? Morgen ist heute schon gestern.
Quo Vadis Argumentum Mobile? Morgen ist heute schon gestern.Benny Reimold
 
Redacted – Living in the mobile space
Redacted – Living in the mobile spaceRedacted – Living in the mobile space
Redacted – Living in the mobile spaceBenny Reimold
 
Tragbares Designsprech
Tragbares DesignsprechTragbares Designsprech
Tragbares DesignsprechBenny Reimold
 
$Foo design basics for ios developers
$Foo design basics for ios developers$Foo design basics for ios developers
$Foo design basics for ios developersBenny Reimold
 
Alles wird wie neu sein!
Alles wird wie neu sein!Alles wird wie neu sein!
Alles wird wie neu sein!Benny Reimold
 
Why iOS Dev, Android Dev, WP7 Dev and Web App Dev all suck and why we STILL d...
Why iOS Dev, Android Dev, WP7 Dev and Web App Dev all suck and why we STILL d...Why iOS Dev, Android Dev, WP7 Dev and Web App Dev all suck and why we STILL d...
Why iOS Dev, Android Dev, WP7 Dev and Web App Dev all suck and why we STILL d...Benny Reimold
 
Android tech talks - Moderation by Benny
Android tech talks - Moderation by BennyAndroid tech talks - Moderation by Benny
Android tech talks - Moderation by BennyBenny Reimold
 
Android Workshop at @majug by @derwildemomo and @elektrojunge
Android Workshop at @majug by @derwildemomo and @elektrojungeAndroid Workshop at @majug by @derwildemomo and @elektrojunge
Android Workshop at @majug by @derwildemomo and @elektrojungeBenny Reimold
 
Windows phone 7 talk
Windows phone 7 talkWindows phone 7 talk
Windows phone 7 talkBenny Reimold
 

Más de Benny Reimold (9)

Quo Vadis Argumentum Mobile? Morgen ist heute schon gestern.
Quo Vadis Argumentum Mobile? Morgen ist heute schon gestern.Quo Vadis Argumentum Mobile? Morgen ist heute schon gestern.
Quo Vadis Argumentum Mobile? Morgen ist heute schon gestern.
 
Redacted – Living in the mobile space
Redacted – Living in the mobile spaceRedacted – Living in the mobile space
Redacted – Living in the mobile space
 
Tragbares Designsprech
Tragbares DesignsprechTragbares Designsprech
Tragbares Designsprech
 
$Foo design basics for ios developers
$Foo design basics for ios developers$Foo design basics for ios developers
$Foo design basics for ios developers
 
Alles wird wie neu sein!
Alles wird wie neu sein!Alles wird wie neu sein!
Alles wird wie neu sein!
 
Why iOS Dev, Android Dev, WP7 Dev and Web App Dev all suck and why we STILL d...
Why iOS Dev, Android Dev, WP7 Dev and Web App Dev all suck and why we STILL d...Why iOS Dev, Android Dev, WP7 Dev and Web App Dev all suck and why we STILL d...
Why iOS Dev, Android Dev, WP7 Dev and Web App Dev all suck and why we STILL d...
 
Android tech talks - Moderation by Benny
Android tech talks - Moderation by BennyAndroid tech talks - Moderation by Benny
Android tech talks - Moderation by Benny
 
Android Workshop at @majug by @derwildemomo and @elektrojunge
Android Workshop at @majug by @derwildemomo and @elektrojungeAndroid Workshop at @majug by @derwildemomo and @elektrojunge
Android Workshop at @majug by @derwildemomo and @elektrojunge
 
Windows phone 7 talk
Windows phone 7 talkWindows phone 7 talk
Windows phone 7 talk
 

Último

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 

Último (20)

Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 

Typographie to go! @ Mobile Tech Con 2014, Berlin

  • 1. Typographie to go! Benjamin Reimold
  • 2. About me Codenauts GmbH www.codenauts.com Überall (Stuttgart – Berlin) ! Benjamin Reimold benjamin@hockeyapp.net @elektrojunge elektrojunge.de ! MobileMaultaschen.de
  • 3.
  • 4.
  • 5. Above all, text must be legible. If users can’t read the words in your app, it doesn’t matter how beautiful the typography is. – Apple Human Interface Guidelines
  • 6. The Android design language relies on traditional typographic tools such as scale, space, rhythm, and alignment with an underlying grid. Successful deployment of these tools is essential to help users quickly understand a screen of information. – Design Guideline for Android by Google
  • 7. Typography is at the heart of the Microsoft design language. Each of the Microsoft design principles reinforces the importance of typography. – Guidelines for Typography by Microsoft
  • 8. Der Mensch vor dem Bildschirm wird immer nach einem Grund suchen, die App nicht benutzen zu „müssen“.
  • 11. Schrift Das Aussehen von Zeichen und Symbolen Font Die physische Repräsentation der Schrift Glyphe Die Darstellung eines Schriftzeichens
  • 13. k-Linie H-Linie x-Linie Typographie Grundlinie p-Linie
  • 16.
  • 17. This is not a typeface. It’s a tossed salad. Or a four-headed Frankenstein. You never know which personality you’ll get. - Stephen Coles (typographica.org)
  • 18. Die neue Roboto https://plus.google.com/+googledesign/posts/Gfd7FRskeHm
  • 20. It’s a MONOTYPE to rule them all!
  • 21. Howto lie down layout https://www.flickr.com/photos/superfantastic/65578354
  • 22. Look, just because I don't be givin' no man a foot massage don't make it right for Marsellus to throw Antwone into a glass motherfuckin' house, fuckin' up the way the nigger talks. Motherfucker do that shit to me, he better paralyze my ass, 'cause I'll kill the motherfucker, know what I'm sayin'?Look, just because I don't be givin' no man a foot massage don't make it right for Marsellus to throw Antwone glass motherfuckin' house, fuckin' up the way the nigger talks. Motherfucker do that shit to me, he better paralyze my ass, 'cause I'll the motherfucker, know what I'm sayin’? The path of the righteous man is beset on all sides by the iniquities of the selfish and the tyranny evil men. Blessed is he who, in the name of charity and good will, shepherds the weak through the valley of darkness, for he is truly brother's keeper and the finder of lost children. And I will strike down upon thee with great vengeance and furious anger those who attempt to poison and destroy My brothers. And you will know My name is the Lord when I lay My vengeance upon thee. Look, just because I don't be givin' no man a foot massage don't make it right for Marsellus to throw Antwone into a glass motherfuckin' house, fuckin' up the way the nigger talks. Motherfucker do that shit to me, he better paralyze my ass, 'cause I'll kill the motherfucker, know I'm sayin’? You think water moves fast? You should see ice. It moves like it has a mind.Like it knows it killed the world once and got for murder. After the avalanche, it took us a week to climb out. Now, I don't know exactly when we turned on each other, but I know seven of us survived the slide... and only five made it out. Now we took an oath, that I'm breaking that killed the other two, but it Lorem wasn't. Nature is lethal Ipsum but it doesn't hold a Dolor candle to man. Look, Sic now. We said we'd say it was the snow just because I don't be givin' no man foot massage don't make it right for Marsellus to throw Antwone into a glass motherfuckin' house, fuckin' up the way the nigger talks. Motherfucker do that shit to me, he better paralyze my ass, 'cause I'll kill the motherfucker, know what I'm sayin'?Look, just because don't be givin' no man a foot massage don't make it right for Marsellus to throw Antwone into a glass motherfuckin' house, fuckin' up way the nigger talks. Motherfucker do that shit to me, he better paralyze my ass, 'cause I'll kill the motherfucker, know what I'm sayin’? The path of the righteous man is beset on all sides by the iniquities of the selfish and the tyranny of evil men. Blessed is he who, in name of charity and good will, shepherds the weak through the valley of darkness, for he is truly his brother's keeper and the finder lost children. And I will strike down upon thee with great vengeance and furious anger those who would attempt to poison and destroy brothers. And you will know My name is the Lord when I lay My vengeance upon thee. Look, just because I don't be givin' no man a foot massage don't make it right for Marsellus to throw Antwone into a glass motherfuckin' house, fuckin' up the way the nigger talks. Motherfucker do that shit to me, he better paralyze my ass, 'cause I'll kill the motherfucker, know what I'm sayin’? You think water moves fast? You should see ice. It moves like it has a mind.Like it knows it killed the world once and got a taste for murder. After the avalanche, took us a week to climb out. Now, I don't know exactly when we turned on each other, but I know that seven of us survived the slide... only five made it out. Now we took an oath, that I'm breaking now. We said we'd say it was the snow that killed the other two, but it Nature is lethal but it doesn't hold a candle to man.
  • 23. Rechtschreibung, macht sexy. Richtige Zeichenwal – ebenfalls´.
  • 24. Zusammengefasst: • Typographie ist wichtig! • Schrift - Font - Glyphen • Linien, Serifen & Ko. • Mit Typographie scherzt man nicht. • „Welchen Font hätten Sie denn gern?“ • Howto layout • Kennsch du Sprache!
  • 26. UIWebView NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"somePage" ofType:@"html"]; NSString *htmlString = [NSString stringWithContentsOfFile:htmlFile encoding:NSUTF8StringEncoding error:nil]; [self.awesomeWebView loadHTMLString:htmlString baseURL:nil];
  • 27. Native Typographie iOS 3.2 / iOS 4 CoreText & NSAttributedString iOS 6 UILabel & UITextView support NSAttributedString iOS 7 TextKit
  • 29. NSHTMLTextDocumentType NSDictionary *options = @{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType} ; NSAttributedString *stringWithHTMLAttributes = [[NSAttributedString alloc] initWithFileURL:url options:options documentAttributes:nil error:nil]; ! [self.justSomeLabel setAttributedText:stringWithHTMLAttributes];
  • 31. NSString *markdown = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil]; NSString *html = [MMMarkdown HTMLStringWithMarkdown:markdown error:nil]; ! NSDictionary *options = @{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType}; ! NSError *error; NSAttributedString *formatted = [[NSAttributedString alloc] initWithData:[html dataUsingEncoding:NSUTF16StringEncoding] options:options documentAttributes:nil error:&error]; ! self.awesomTextView.attributedText = formatted;
  • 34. Codenauts töten gerne böse Käfermit HockeyApp.
  • 35. NSAttributedString Codenauts töten gerne böse Käfer mit HockeyApp. NSString *text = @"Codenauts töten gerne böse Käfer mit HockeyApp.“; ! NSDictionary *attrs = @{ NSFontAttributeName : [UIFont systemFontOfSize:36]}; ! NSMutableAttributedString *as = [[NSMutableAttributedString alloc] initWithString:text attributes:attrs];
  • 36. Codenauts töten gerne böse Käfer mit HockeyApp. [as addAttribute:NSFontAttributeName value:[UIFont boldSystemFontOfSize: 36] range:[text rangeOfString:@"Codenauts"]]; ! [as addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:[text rangeOfString:@"gerne"]]; ! [as addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:18] range:[text rangeOfString:@"Käfer"]]; ! [as addAttribute:NSBackgroundColorAttributeName value:[UIColor purpleColor] range:[text rangeOfString:@"mit HockeyApp"]]; ! UIFont *awesomeFont = [UIFont fontWithName:@"AmericanTypewriter" size: 27.0f]; ! [as addAttribute:NSFontAttributeName value:awesomeFont range:[text rangeOfString:@"HockeyApp"]]; ! self.awesomeTextView.attributedText = as;
  • 37. 4 Debugging NSRange range = NSMakeRange (0, as.length); [as enumerateAttributesInRange: range options: 0 usingBlock: ^(NSDictionary *attributes, NSRange range, BOOL *stop) { NSLog (@"range: %@ attributes: %@", NSStringFromRange(range), attributes); }]; 2014-08-31 12:07:23.503 TypographieToGo[5831:367954] range: {37, 9} attributes: { NSBackgroundColor = "UIDeviceRGBColorSpace 0.5 0 0.5 1"; NSFont = "<UICTFont: 0x7fafd41017a0> font-family: "American Typewriter"; font-weight: normal; font-style: normal; font-size: 27.00pt"; }
  • 38. You think water moves fast? You should see ice. It moves like it has a mind. Like it knows it killed the world once and got a taste for murder. After the avalanche, it took us a week to climb out. Now, I don't know exactly when we turned on each other, but I know that seven of us survived the slide... and only five made it out. Now we took an oath, that I'm breaking now. We said we'd say it was the snow that killed the other two, but it wasn't. Nature is lethal but it doesn't hold a candle to man. The path of the righteous man is beset on all sides by the iniquities of the selfish and the tyranny of evil men. Blessed is he who, in the name of charity and good will, shepherds the weak through the valley of darkness, for he is truly his brother's keeper and the finder of lost children. And I will strike down upon thee with great vengeance and furious anger those who would attempt to poison and destroy My brothers. And you will know My name is the Lord when I lay My vengeance upon thee. You think water moves fast? You should see ice. It moves like it has a mind. Like it knows it killed the world once and got a taste for murder. After the avalanche, it took us a week to climb out. Now, I don't know exactly when we turned on each other, but I know that seven of us survived the slide... and only five made it out. Now we took an oath, that I'm breaking now. We said we'd say it was the snow that killed the other two, but it wasn't. Nature is lethal but it doesn't hold a candle to man.
  • 39. NSParagraphStyleAttributeName NSMutableParagraphStyle *generalStyle = [[NSMutableParagraphStyle alloc] init]; [generalStyle setParagraphSpacing:27.0]; [generalStyle setFirstLineHeadIndent:10.0]; [generalStyle setAlignment:NSTextAlignmentJustified]; ! NSMutableAttributedString *formatted = [[NSMutableAttributedString alloc] initWithString:slipsumText attributes:@{NSParagraphStyleAttributeName: generalStyle}];
  • 40. NSParagraphStyleAttributeName NSUInteger secondParagraphStart = NSMaxRange([formatted.string rangeOfString:@"n" ]); NSMutableParagraphStyle *secondParagraphStyle = [[formatted attribute:NSParagraphStyleAttributeName atIndex:secondParagraphStart effectiveRange:NULL] mutableCopy]; secondParagraphStyle.headIndent += 20.0; secondParagraphStyle.firstLineHeadIndent += 20.0; secondParagraphStyle.tailIndent -= 20.0; ! [formatted addAttribute:NSParagraphStyleAttributeName value:secondParagraphStyle range:NSMakeRange(secondParagraphStart, 1)]; ! self.awesomeTV.attributedText = formatted;
  • 41. Dynamic Type + (UIFont *) preferredFontForTextStyle: (NSString *)style UIContentSizeCategoryDidChangeNotification - (void)userChangedTextSize:(NSNotification *)notification { self.awesomeLab.font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody]; } @property (nonatomic, readonly) NSString*preferredContentSizeCategory;
  • 42. Geht’s auch dynamisch?! https://www.flickr.com/photos/tudor/7305737304
  • 43. MTStringAttributes Codenauts töten gerne böse Käfermit HockeyApp. MTStringAttributes *general = [MTStringAttributes new]; general.font = [UIFont systemFontOfSize:36]; general.textColor = [UIColor redColor]; general.kern = 0.8f;
  • 44. MTStringParser *parser = [MTStringParser sharedParser]; [parser setDefaultAttributes:general]; [parser addStyleWithTagName:@"codenauts" font:[UIFont boldSystemFontOfSize:36]]; [parser addStyleWithTagName:@"gerne" font:sysFont color:[UIColor redColor]]; [parser addStyleWithTagName:@"bugs" font:[UIFont systemFontOfSize:18]]; [parser addStyleWithTagName:@"mit" font:sysFont color:black backgroundColor:[UIColor purpleColor] strikethrough:NO underline:NO]; [parser addStyleWithTagName:@"HockeyApp" font:[UIFont fontWithName:@"AmericanTypewriter" size:27.0f]]; NSString *markup = @"<codenauts>Codenauts</codenauts> töten <gerne>gerne</ gerne> böse <bugs>Käfer</bugs> <mit>mit <HockeyApp>HockeyApp</HockeyApp></ mit>."; NSAttributedString *attributedString = [[MTStringParser sharedParser] attributedStringFromMarkup:markup];
  • 45. TTTAttributedLabel - (void) basicFormatting { self.tttAttributedLabel.numberOfLines = 0; self.tttAttributedLabel.textAlignment = NSTextAlignmentLeft; self.tttAttributedLabel.lineBreakMode = NSLineBreakByWordWrapping; self.tttAttributedLabel.backgroundColor = [UIColor clearColor]; self.tttAttributedLabel.textInsets = (UIEdgeInsets){ .left = 10, .top = 10, .right = 10, .bottom = 10 }; } @property (nonatomic, strong) NSDictionary *linkAttributes; NSDictionary *linkAttributes = [NSDictionary dictionaryWithObjectsAndKeys: (__bridge id) fontColor.CGColor, (__bridge NSString *) kCTForegroundColorAttributeName, headerCTFont, (__bridge NSString *) kCTFontAttributeName, @(kCTUnderlineStyleSingle), (__bridge NSString *) kCTUnderlineStyleAttributeName, (__bridge id) paragraphRef, (__bridge id) kCTParagraphStyleAttributeName, NULL]; - (void)attributedLabel:(TTTAttributedLabel *)label didSelectLinkWithURL:(NSURL *)url;
  • 47. You think water moves fast? You should see ice. It moves like it has a mind. Like it knows it killed the world once and got a taste for murder. After the avalanche, it took us a week to climb out. Now, I don't know exactly when we turned on each other, but I know that seven of us survived the slide... and only five made it out. Now we took an oath, that I'm breaking now. We said we'd say it was the snow that killed the other two, but it wasn't. Nature is lethal but it doesn't hold a candle to man. You think water moves fast? You should see ice. It moves like it has a mind. Like it knows it killed the world once and got a taste for murder. After the avalanche, it took us a week to climb out. Now, I don't know exactly when we turned on each other, but I know that seven of us survived the slide... and only five made it out. Now we took an oath, that I'm breaking now. We said we'd say it was the snow that killed the other two, but it wasn't. Nature is lethal but it doesn't hold a candle to man. You think water moves fast? You should see ice. It moves like it has a mind. Like it knows it killed the world once and got a taste for murder. After the avalanche, it took us a week to climb out. Now, I don't know exactly when we turned on each other, but I know that seven of us survived the slide... and only five made it out. Now we took an oath, that I'm breaking now. We said we'd say it was the snow that killed the other two, but it wasn't. Nature is lethal but it doesn't hold a candle to man. You think water moves fast? You should see ice. It moves like it has a mind. Like it knows it killed the world once and got a taste for murder. After the avalanche, it took us a week to climb out. Now, I don't know exactly when we turned on each other, but I know that seven of us survived the slide... and only five made it out. Now we took an oath, that I'm breaking now. We said we'd say it was the snow that killed the other two, but it wasn't. Nature is lethal but it doesn't hold a candle to man. You think water moves fast? You should see ice. It moves like it has a mind. Like it knows it killed the world once and got a taste for murder. After the avalanche, it took us a week to climb out. Now, I don't know exactly when we turned on each other, but I know that seven of us survived the slide... and only five made it out. Now we took an oath, that I'm breaking now. We said we'd say it was the snow that killed the other two, but it wasn't. Nature is lethal but it doesn't hold a candle to man.
  • 48. So, Core-Text. Framesetter ! Typesetter ! Line ! Run ! Glyph
  • 49. // in drawRect: // Init context and matrix CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetTextMatrix(context, CGAffineTransformIdentity); ! CFAttributedStringRef attrString = (__bridge CFTypeRef) self.attributedString; CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString(attrString); ! CFArrayRef paths = [self copyPaths]; CFIndex pathCount = CFArrayGetCount(paths); CFIndex charIndex = 0; for(CFIndex pathIndex = 0; pathIndex < pathCount; ++pathIndex) { CGPathRef path = CFArrayGetValueAtIndex(paths, pathIndex); CTFrameRef frame = CTFramesetterCreateFrame(framesetter, CFRangeMake(charIndex, 0), path, NULL); CTFrameDraw(frame, context); CFRange frameRange = CTFrameGetVisibleStringRange(frame); charIndex += frameRange.length; CFRelease(frame); } CFRelease(paths); CFRelease(framesetter);
  • 50. Alberner Kram geht auch ;-) You think water moves fast? You should see ice. It moves like it has a mind. Like it knows it killed the world once and got a taste for murder. After the avalanche, it took us a week to climb out. Now, I don't know exactly when we turned on each other, but I know that seven of us survived the slide... and only five made it out. Now we took an oath, that I'm breaking now. We said we'd say it was the snow that killed the other two, but it wasn't. Nature is lethal but it doesn't hold a candle to man. You think water moves fast? You should see ice. It moves like it has a mind. Like it knows it killed the world once and got a taste for murder. After the avalanche, it took us a week to climb out. Now, I don't know exactly when we turned on each other, but I know that seven of us survived the slide... and only five made it out. Now we took an oath, that I'm breaking now. We said we'd say it was the snow that killed the other two, but it wasn't. Nature is lethal but it doesn't hold a candle to man. You think water moves fast? You should see ice. It moves like it has a mind. Like it knows it killed the world once and got a taste for murder. After the avalanche, it took us a week to climb out. Now, I don't know exactly when we turned on each other, but I know that seven of us survived the slide... and only five made it out. Now we took an oath, that I'm breaking now. After the avalanche, it took us a week to climb out. Now, I don't know exactly when we turned on each other, but I know that seven of us survived the slide... and only five made it out. Now we took an oath, that I'm breaking now. We said we'd say it was the snow that killed the other two, but it wasn't. Nature is lethal but it doesn't hold a candle
  • 52. Alberner Kram geht auch ;-) You think water moves fast? You should see ice. It moves like it has a mind. Like it knows it killed the world once and got a taste for murder. After the avalanche, it took us a week to climb out. Now, I don't know exactly when we turned on each other, but I know that seven of us survived the slide... and only five made it out. Now we took an oath, that I'm breaking now. We said we'd say it was the snow that killed the other two, but it wasn't. Nature is lethal but it doesn't hold a candle to man. You think water moves fast? You should see ice. It moves like UIBezierPath *pathForRoundView = it has a mind. Like it knows it killed the world once and got a taste for murder. After the [self.avalanche, roundView it took us curvePathWithOrigin:a week to climb out. Now, I don't self.know roundView.exactly when center]; we turned on each other, but I know that seven of us survived the slide... and only five made it out. Now we took an oath, that I'm breaking now. We said we'd say it was the snow that killed the other two, but it wasn't. Nature is lethal but it doesn't hold a candle to man. You think water moves fast? You should see ice. It moves like it has a mind. Like it knows it killed the world once and got a taste for murder. After the avalanche, it took us a self.awesomeTV.textContainer.exclusionPaths = @[pathForRoundView]; week to climb out. Now, I don't know exactly when we turned on each other, but I know that seven of us survived the slide... and only five made it out. Now we took an oath, that I'm breaking now. After the avalanche, it took us a week to climb out. Now, I don't know exactly when we turned on each other, but I know that seven of us survived the slide... and only five made it out. Now we took an oath, that I'm breaking now. We said we'd say it was the snow that killed the other two, but it wasn't. Nature is lethal but it doesn't hold a candle
  • 53. TextKit NSLayoutManager eigener NSTextStorage aka „Container für NSAttributedString“ NSTextContainer Codenauts töten gerne böse Käfermit HockeyApp.
  • 55. WebView HTML.fromHtml(String resource) TextView + SpannableStringBuilder canvas.drawText(….) ? android.text.style
  • 56. Zusammengefasst: • iOS7+ Typographie macht so richtig Spaß • NSAttributedString für Schrift & Zeichen • TextKit für Layout • CoreText für die letzten 5%? • <iOS7 NSAttributedString + Yak Shaving • Android: kann Html-style Typographie
  • 57. Danke für’s zuhören! Codenauts GmbH www.codenauts.com Überall (Stuttgart – Berlin) ! Benjamin Reimold benjamin@hockeyapp.net @elektrojunge elektrojunge.de Fragen?