SlideShare ist ein Scribd-Unternehmen logo
1 von 89
Downloaden Sie, um offline zu lesen
Cocoa Text
    Chad Sellers
Useful Fruit Software
      9/8/2010
What is Cocoa Text
What is Cocoa Text
• High level text
  framework
What is Cocoa Text
• High level text   Cocoa Text
  framework
What is Cocoa Text
• High level text           Cocoa Text
  framework
• As opposed to Core Text
What is Cocoa Text
• High level text           Cocoa Text
  framework
• As opposed to Core Text


                            Core Text
What is Cocoa Text
• High level text           Cocoa Text
                            • Pre-made widgets
  framework                 • Lots of UI

• As opposed to Core Text


                            Core Text
What is Cocoa Text
• High level text           Cocoa Text
                            • Pre-made widgets
  framework                 • Lots of UI

• As opposed to Core Text


                            Core Text
                             • Do it yourself
Text Rendering
Text Rendering
•   Fonts
Text Rendering
•   Fonts

•   Bold/Underline/Italics
Text Rendering
•   Fonts

•   Bold/Underline/Italics

•   Colors
Text Rendering
•   Fonts

•   Bold/Underline/Italics

•   Colors

•   Kerning
Text Rendering
•   Fonts

•   Bold/Underline/Italics

•   Colors

•   Kerning

•   Ligature (fi fi)
Text Rendering
•   Fonts

•   Bold/Underline/Italics

•   Colors

•   Kerning

•   Ligature (fi fi)

•   Baseline
Text Rendering
•   Fonts                    •   Inline attachments

•   Bold/Underline/Italics

•   Colors

•   Kerning

•   Ligature (fi fi)

•   Baseline
Much more
Much more
•   Layout
Much more
•   Layout

•   Editing
Much more
•   Layout

•   Editing

    •   cursor
Much more
•   Layout

•   Editing

    •   cursor

    •   input handling
Much more
•   Layout

•   Editing

    •   cursor

    •   input handling

•   Spelling/Grammar
Much more
•   Layout

•   Editing

    •   cursor

    •   input handling

•   Spelling/Grammar

•   Finding
Much more
•   Layout               •   Substitutions

•   Editing

    •   cursor

    •   input handling

•   Spelling/Grammar

•   Finding
Much more
•   Layout               •   Substitutions

•   Editing              •   Transformations

    •   cursor

    •   input handling

•   Spelling/Grammar

•   Finding
Much more
•   Layout               •   Substitutions

•   Editing              •   Transformations

    •   cursor           •   Speech

    •   input handling

•   Spelling/Grammar

•   Finding
Much more
•   Layout               •   Substitutions

•   Editing              •   Transformations

    •   cursor           •   Speech

    •   input handling   •   Dictionary

•   Spelling/Grammar

•   Finding
Much more
•   Layout               •   Substitutions

•   Editing              •   Transformations

    •   cursor           •   Speech

    •   input handling   •   Dictionary

•   Spelling/Grammar     •   and more

•   Finding
Sample code
Sample code


  TextEdit
/Developer/Examples/TextEdit
NSString
NSString
• Plain text
NSString
• Plain text
• Immutable
NSString
• Plain text
• Immutable
 • NSMutableString isn’t
NSString
• Plain text
• Immutable
 • NSMutableString isn’t
• Literal - @”literal”
NSString
• Plain text
• Immutable
 • NSMutableString isn’t
• Literal - @”literal”
• Handles encodings
NSString
• Plain text
• Immutable
 • NSMutableString isn’t
• Literal - @”literal”
• Handles encodings
• Methods to split/join/etc.
NSString
• Plain text
• Immutable
 • NSMutableString isn’t
• Literal - @”literal”
• Handles encodings
• Methods to split/join/etc.
  •   - (NSString *)substringWithRange:(NSRange)aRange
NSString
• Plain text
• Immutable
 • NSMutableString isn’t
• Literal - @”literal”
• Handles encodings
• Methods to split/join/etc.
  •   - (NSString *)substringWithRange:(NSRange)aRange

  •   - (NSString *)stringByAppendingPathComponent:(NSString *)aString
NSAttributedString
NSAttributedString
• Rich text
NSAttributedString
• Rich text
• Attributes applied over a range
NSAttributedString
• Rich text
• Attributes applied over a range
• Foundation version not too useful alone
NSAttributedString
• Rich text
• Attributes applied over a range
• Foundation version not too useful alone
• AppKit Additions make it useful
NSAttributedString
• Rich text
• Attributes applied over a range
• Foundation version not too useful alone
• AppKit Additions make it useful
 • Adds useful attributes (e.g. NSFontAttributeName)
NSAttributedString
• Rich text
• Attributes applied over a range
• Foundation version not too useful alone
• AppKit Additions make it useful
 • Adds useful attributes (e.g. NSFontAttributeName)
• Methods for reading/writing common formats
NSAttributedString
• Rich text
• Attributes applied over a range
• Foundation version not too useful alone
• AppKit Additions make it useful
 • Adds useful attributes (e.g. NSFontAttributeName)
• Methods for reading/writing common formats
 • RTF/RTFD, HTML, Word Doc, Open XML, OpenDoc
Attributes
Attributes
Attributes make strings fun!
Attributes
         Attributes make strings fun!

NSForegroundColorAttributeName
       [NSColor redColor]
Attributes
         Attributes make strings                           fun!


NSForegroundColorAttributeName             NSFontAttributeName
       [NSColor redColor]         [NSFont fontWithName:@”Monaco” size:48]
Attributes
         Attributes make strings                                               fun!


NSForegroundColorAttributeName                                 NSFontAttributeName
       [NSColor redColor]                             [NSFont fontWithName:@”Monaco” size:48]




                                    NSUnderlineStyleAttributeName
                            [NSNumber numberWithInt:NSUnderlineStyleDouble]
Attributes
         Attributes make strings                                               fun!


NSForegroundColorAttributeName                                 NSFontAttributeName
       [NSColor redColor]                             [NSFont fontWithName:@”Monaco” size:48]




                                    NSUnderlineStyleAttributeName
                            [NSNumber numberWithInt:NSUnderlineStyleDouble]
NSMutableAttributedString
NSMutableAttributedString
  • Mutable version of NSAttributedString
NSMutableAttributedString
  • Mutable version of NSAttributedString
  • Also has AppKit additions
NSTextStorage
NSTextStorage
• Subclass of NSMutableAttributedString
NSTextStorage
• Subclass of NSMutableAttributedString
• Main text storage class used in Cocoa Text
NSTextStorage
• Subclass of NSMutableAttributedString
• Main text storage class used in Cocoa Text
• Manages NSLayoutManagers
NSTextStorage
• Subclass of NSMutableAttributedString
• Main text storage class used in Cocoa Text
• Manages NSLayoutManagers
 • which layout text into text containers
NSTextView
NSTextView
• View for displaying/editing rich text
NSTextView
• View for displaying/editing rich text
• Contains NSTextContainer
NSTextView
• View for displaying/editing rich text
• Contains NSTextContainer
 • NSLayoutManager lays out text here
NSTextView
• View for displaying/editing rich text
• Contains NSTextContainer
 • NSLayoutManager lays out text here
• Lots of methods ready to be wired up in IB
NSTextView
• View for displaying/editing rich text
• Contains NSTextContainer
 • NSLayoutManager lays out text here
• Lots of methods ready to be wired up in IB
 • IB even has prebuilt menus to use them
Customizing NSTextView
Customizing NSTextView
 • First stop - delegate methods
Customizing NSTextView
 • First stop - delegate methods
  • From NSTextViewDelegate and
     NSTextDelegate protocols
Customizing NSTextView
 • First stop - delegate methods
  • From NSTextViewDelegate and
     NSTextDelegate protocols
 • Last stop - subclass
NSTextField
NSTextField
• Lighter weight than NSTextView
NSTextField
• Lighter weight than NSTextView
• Subclass of NSControl, not NSText
NSTextField
• Lighter weight than NSTextView
• Subclass of NSControl, not NSText
• Generally single line
NSTextField
• Lighter weight than NSTextView
• Subclass of NSControl, not NSText
• Generally single line
• No layout manager or text container
UITextView
UITextView
• Much simpler than NSTextView
UITextView
• Much simpler than NSTextView
 • 10 properties and 2 methods
UITextView
• Much simpler than NSTextView
 • 10 properties and 2 methods
 • vs. NSTextView/NSText’s 258 methods
UITextView
• Much simpler than NSTextView
 • 10 properties and 2 methods
 • vs. NSTextView/NSText’s 258 methods
• Limited simple styling
UITextView
• Much simpler than NSTextView
 • 10 properties and 2 methods
 • vs. NSTextView/NSText’s 258 methods
• Limited simple styling
 • a few non-ranged attributes
UITextView
• Much simpler than NSTextView
 • 10 properties and 2 methods
 • vs. NSTextView/NSText’s 258 methods
• Limited simple styling
 • a few non-ranged attributes
• Apple recommends UIWebView for
  complex styling
NSAttributedString on iOS
NSAttributedString on iOS
  • Available on iOS 3.2+
NSAttributedString on iOS
  • Available on iOS 3.2+
  • For use with Core Text
NSAttributedString on iOS
  • Available on iOS 3.2+
  • For use with Core Text
  • No AppKit Additions
NSAttributedString on iOS
  • Available on iOS 3.2+
  • For use with Core Text
  • No AppKit Additions
  • Use Core Text attributes
Demo

Weitere ähnliche Inhalte

Was ist angesagt?

Trendsetting: Web Design and Beyond
Trendsetting: Web Design and BeyondTrendsetting: Web Design and Beyond
Trendsetting: Web Design and BeyondAndy Stratton
 
Mura ORM & Ember JS
Mura ORM & Ember JSMura ORM & Ember JS
Mura ORM & Ember JSMura CMS
 
Beginning css
Beginning cssBeginning css
Beginning cssTed Drake
 
Back to school education powerpoint ppt slides.
Back to school education powerpoint ppt slides.Back to school education powerpoint ppt slides.
Back to school education powerpoint ppt slides.SlideTeam.net
 
Back to school education powerpoint presentation slides.
Back to school education powerpoint presentation slides.Back to school education powerpoint presentation slides.
Back to school education powerpoint presentation slides.SlideTeam.net
 
Back to school education powerpoint presentation templates.
Back to school education powerpoint presentation templates.Back to school education powerpoint presentation templates.
Back to school education powerpoint presentation templates.SlideTeam.net
 
Back to school education powerpoint ppt templates.
Back to school education powerpoint ppt templates.Back to school education powerpoint ppt templates.
Back to school education powerpoint ppt templates.SlideTeam.net
 
Castro Chapter 7
Castro Chapter 7Castro Chapter 7
Castro Chapter 7Jeff Byrnes
 
Fuzzy search on plone & search for east asian language
Fuzzy search on plone & search for east asian languageFuzzy search on plone & search for east asian language
Fuzzy search on plone & search for east asian languageManabu Terada
 

Was ist angesagt? (11)

Trendsetting: Web Design and Beyond
Trendsetting: Web Design and BeyondTrendsetting: Web Design and Beyond
Trendsetting: Web Design and Beyond
 
Mura ORM & Ember JS
Mura ORM & Ember JSMura ORM & Ember JS
Mura ORM & Ember JS
 
Introduction 2 css
Introduction 2 cssIntroduction 2 css
Introduction 2 css
 
Beginning css
Beginning cssBeginning css
Beginning css
 
Back to school education powerpoint ppt slides.
Back to school education powerpoint ppt slides.Back to school education powerpoint ppt slides.
Back to school education powerpoint ppt slides.
 
Back to school education powerpoint presentation slides.
Back to school education powerpoint presentation slides.Back to school education powerpoint presentation slides.
Back to school education powerpoint presentation slides.
 
Back to school education powerpoint presentation templates.
Back to school education powerpoint presentation templates.Back to school education powerpoint presentation templates.
Back to school education powerpoint presentation templates.
 
Back to school education powerpoint ppt templates.
Back to school education powerpoint ppt templates.Back to school education powerpoint ppt templates.
Back to school education powerpoint ppt templates.
 
Castro Chapter 7
Castro Chapter 7Castro Chapter 7
Castro Chapter 7
 
Fuzzy search on plone & search for east asian language
Fuzzy search on plone & search for east asian languageFuzzy search on plone & search for east asian language
Fuzzy search on plone & search for east asian language
 
Silverlight 3
Silverlight 3Silverlight 3
Silverlight 3
 

Andere mochten auch

Can big data reinvent the credit score?
Can big data reinvent the credit score?Can big data reinvent the credit score?
Can big data reinvent the credit score?Aneel Mitra
 
Text Layout With Core Text
Text Layout With Core TextText Layout With Core Text
Text Layout With Core TextDavid Ding
 
Core Text: раскрываем интерактивные возможности текста
Core Text: раскрываем интерактивные возможности текстаCore Text: раскрываем интерактивные возможности текста
Core Text: раскрываем интерактивные возможности текстаAny Void
 
5. Market analysis
5. Market analysis 5. Market analysis
5. Market analysis BEye
 
Uv Vis Calculated Of Mv2+ And Mv+
Uv Vis Calculated Of Mv2+ And Mv+Uv Vis Calculated Of Mv2+ And Mv+
Uv Vis Calculated Of Mv2+ And Mv+niba50
 
Proposta de 5 disciplinas de DADs - Desafios contemporâneos dos currículos de...
Proposta de 5 disciplinas de DADs - Desafios contemporâneos dos currículos de...Proposta de 5 disciplinas de DADs - Desafios contemporâneos dos currículos de...
Proposta de 5 disciplinas de DADs - Desafios contemporâneos dos currículos de...Daniel Flores
 
Ke ipsos spec_poll_press_release_presentation_3rd_september_2015
Ke ipsos spec_poll_press_release_presentation_3rd_september_2015Ke ipsos spec_poll_press_release_presentation_3rd_september_2015
Ke ipsos spec_poll_press_release_presentation_3rd_september_2015The Star Newspaper
 
Neural network-toolbox
Neural network-toolboxNeural network-toolbox
Neural network-toolboxangeltejera
 
O desafio dos Arquivistas em garantir a autenticidade e o acesso a longo praz...
O desafio dos Arquivistas em garantir a autenticidade e o acesso a longo praz...O desafio dos Arquivistas em garantir a autenticidade e o acesso a longo praz...
O desafio dos Arquivistas em garantir a autenticidade e o acesso a longo praz...Daniel Flores
 
Preservação de Documentos Digitais: os Repositórios Arquivísticos Digitais C...
Preservação de Documentos Digitais:  os Repositórios Arquivísticos Digitais C...Preservação de Documentos Digitais:  os Repositórios Arquivísticos Digitais C...
Preservação de Documentos Digitais: os Repositórios Arquivísticos Digitais C...Daniel Flores
 
Impacto de las normas internacionales de contabilidad en la economia colombiana
Impacto de las normas internacionales de contabilidad en la economia colombianaImpacto de las normas internacionales de contabilidad en la economia colombiana
Impacto de las normas internacionales de contabilidad en la economia colombianaAlexander Polo
 
Data frameあれこれ
Data frameあれこれData frameあれこれ
Data frameあれこれweda654
 
A difícil tarefa de manter a Cadeia de Custódia Digital dos Documentos Arquiv...
A difícil tarefa de manter a Cadeia de Custódia Digital dos Documentos Arquiv...A difícil tarefa de manter a Cadeia de Custódia Digital dos Documentos Arquiv...
A difícil tarefa de manter a Cadeia de Custódia Digital dos Documentos Arquiv...Daniel Flores
 
SxSW Interactive 2016: In Quotes
SxSW Interactive 2016: In Quotes SxSW Interactive 2016: In Quotes
SxSW Interactive 2016: In Quotes Iris
 
Entry Level International Development CV Template
Entry Level International Development CV Template Entry Level International Development CV Template
Entry Level International Development CV Template Devex
 

Andere mochten auch (20)

Can big data reinvent the credit score?
Can big data reinvent the credit score?Can big data reinvent the credit score?
Can big data reinvent the credit score?
 
Text Layout With Core Text
Text Layout With Core TextText Layout With Core Text
Text Layout With Core Text
 
Core text
Core textCore text
Core text
 
Core Text: раскрываем интерактивные возможности текста
Core Text: раскрываем интерактивные возможности текстаCore Text: раскрываем интерактивные возможности текста
Core Text: раскрываем интерактивные возможности текста
 
5. Market analysis
5. Market analysis 5. Market analysis
5. Market analysis
 
Aasj05.02 stavrias
Aasj05.02 stavriasAasj05.02 stavrias
Aasj05.02 stavrias
 
Uv Vis Calculated Of Mv2+ And Mv+
Uv Vis Calculated Of Mv2+ And Mv+Uv Vis Calculated Of Mv2+ And Mv+
Uv Vis Calculated Of Mv2+ And Mv+
 
Criteria by diagrams
Criteria by diagramsCriteria by diagrams
Criteria by diagrams
 
Proposta de 5 disciplinas de DADs - Desafios contemporâneos dos currículos de...
Proposta de 5 disciplinas de DADs - Desafios contemporâneos dos currículos de...Proposta de 5 disciplinas de DADs - Desafios contemporâneos dos currículos de...
Proposta de 5 disciplinas de DADs - Desafios contemporâneos dos currículos de...
 
Neural nw k means
Neural nw k meansNeural nw k means
Neural nw k means
 
Ke ipsos spec_poll_press_release_presentation_3rd_september_2015
Ke ipsos spec_poll_press_release_presentation_3rd_september_2015Ke ipsos spec_poll_press_release_presentation_3rd_september_2015
Ke ipsos spec_poll_press_release_presentation_3rd_september_2015
 
Neural network-toolbox
Neural network-toolboxNeural network-toolbox
Neural network-toolbox
 
O desafio dos Arquivistas em garantir a autenticidade e o acesso a longo praz...
O desafio dos Arquivistas em garantir a autenticidade e o acesso a longo praz...O desafio dos Arquivistas em garantir a autenticidade e o acesso a longo praz...
O desafio dos Arquivistas em garantir a autenticidade e o acesso a longo praz...
 
Preservação de Documentos Digitais: os Repositórios Arquivísticos Digitais C...
Preservação de Documentos Digitais:  os Repositórios Arquivísticos Digitais C...Preservação de Documentos Digitais:  os Repositórios Arquivísticos Digitais C...
Preservação de Documentos Digitais: os Repositórios Arquivísticos Digitais C...
 
Impacto de las normas internacionales de contabilidad en la economia colombiana
Impacto de las normas internacionales de contabilidad en la economia colombianaImpacto de las normas internacionales de contabilidad en la economia colombiana
Impacto de las normas internacionales de contabilidad en la economia colombiana
 
Data frameあれこれ
Data frameあれこれData frameあれこれ
Data frameあれこれ
 
A difícil tarefa de manter a Cadeia de Custódia Digital dos Documentos Arquiv...
A difícil tarefa de manter a Cadeia de Custódia Digital dos Documentos Arquiv...A difícil tarefa de manter a Cadeia de Custódia Digital dos Documentos Arquiv...
A difícil tarefa de manter a Cadeia de Custódia Digital dos Documentos Arquiv...
 
Nic 24
Nic 24Nic 24
Nic 24
 
SxSW Interactive 2016: In Quotes
SxSW Interactive 2016: In Quotes SxSW Interactive 2016: In Quotes
SxSW Interactive 2016: In Quotes
 
Entry Level International Development CV Template
Entry Level International Development CV Template Entry Level International Development CV Template
Entry Level International Development CV Template
 

Ähnlich wie Cocoa text talk.key

Intro to css & sass
Intro to css & sassIntro to css & sass
Intro to css & sassSean Wolfe
 
What is-sass-by-lucas-castro
What is-sass-by-lucas-castroWhat is-sass-by-lucas-castro
What is-sass-by-lucas-castroLucas Castro
 
Software Engineering Thailand: Programming with Scala
Software Engineering Thailand: Programming with ScalaSoftware Engineering Thailand: Programming with Scala
Software Engineering Thailand: Programming with ScalaBrian Topping
 
Advanced sass/compass
Advanced sass/compassAdvanced sass/compass
Advanced sass/compassNick Cooley
 
Creating Fixed-Layout EPUBs
Creating Fixed-Layout EPUBsCreating Fixed-Layout EPUBs
Creating Fixed-Layout EPUBsLaura Brady
 
Chapter 2 : TEXT
Chapter 2 : TEXTChapter 2 : TEXT
Chapter 2 : TEXTazira96
 
Hunting for anglerfish in datalakes
Hunting for anglerfish in datalakesHunting for anglerfish in datalakes
Hunting for anglerfish in datalakesDominic Egger
 
Ballerina- A programming language for the networked world
Ballerina- A programming language for the networked worldBallerina- A programming language for the networked world
Ballerina- A programming language for the networked worldIntegration Meetups
 
Ballerina- A programming language for the networked world
Ballerina- A programming language for the networked worldBallerina- A programming language for the networked world
Ballerina- A programming language for the networked worldAsangi Jasenthuliyana
 
Typography and user experience - UX Craft 2014
Typography and user experience - UX Craft 2014Typography and user experience - UX Craft 2014
Typography and user experience - UX Craft 2014Me
 
Alexey Golub - Writing parsers in c# | 3Shape Meetup
Alexey Golub - Writing parsers in c# | 3Shape MeetupAlexey Golub - Writing parsers in c# | 3Shape Meetup
Alexey Golub - Writing parsers in c# | 3Shape MeetupOleksii Holub
 
Intro to html, css & sass
Intro to html, css & sassIntro to html, css & sass
Intro to html, css & sassSean Wolfe
 
Markup languages and warp-speed documentation
Markup languages and warp-speed documentationMarkup languages and warp-speed documentation
Markup languages and warp-speed documentationLois Patterson
 
Lois Patterson: Markup Languages and Warp-Speed Documentation
Lois Patterson:  Markup Languages and Warp-Speed DocumentationLois Patterson:  Markup Languages and Warp-Speed Documentation
Lois Patterson: Markup Languages and Warp-Speed DocumentationJack Molisani
 
Bshmanual
BshmanualBshmanual
Bshmanual涛 相
 
Building DSLs with Scala
Building DSLs with ScalaBuilding DSLs with Scala
Building DSLs with ScalaMohit Jaggi
 
CoconutKit
CoconutKitCoconutKit
CoconutKitdefagos
 

Ähnlich wie Cocoa text talk.key (20)

Intro to css & sass
Intro to css & sassIntro to css & sass
Intro to css & sass
 
Text
TextText
Text
 
Character sets
Character setsCharacter sets
Character sets
 
What is-sass-by-lucas-castro
What is-sass-by-lucas-castroWhat is-sass-by-lucas-castro
What is-sass-by-lucas-castro
 
Software Engineering Thailand: Programming with Scala
Software Engineering Thailand: Programming with ScalaSoftware Engineering Thailand: Programming with Scala
Software Engineering Thailand: Programming with Scala
 
Advanced sass/compass
Advanced sass/compassAdvanced sass/compass
Advanced sass/compass
 
Creating Fixed-Layout EPUBs
Creating Fixed-Layout EPUBsCreating Fixed-Layout EPUBs
Creating Fixed-Layout EPUBs
 
Chapter 2
Chapter 2Chapter 2
Chapter 2
 
Chapter 2 : TEXT
Chapter 2 : TEXTChapter 2 : TEXT
Chapter 2 : TEXT
 
Hunting for anglerfish in datalakes
Hunting for anglerfish in datalakesHunting for anglerfish in datalakes
Hunting for anglerfish in datalakes
 
Ballerina- A programming language for the networked world
Ballerina- A programming language for the networked worldBallerina- A programming language for the networked world
Ballerina- A programming language for the networked world
 
Ballerina- A programming language for the networked world
Ballerina- A programming language for the networked worldBallerina- A programming language for the networked world
Ballerina- A programming language for the networked world
 
Typography and user experience - UX Craft 2014
Typography and user experience - UX Craft 2014Typography and user experience - UX Craft 2014
Typography and user experience - UX Craft 2014
 
Alexey Golub - Writing parsers in c# | 3Shape Meetup
Alexey Golub - Writing parsers in c# | 3Shape MeetupAlexey Golub - Writing parsers in c# | 3Shape Meetup
Alexey Golub - Writing parsers in c# | 3Shape Meetup
 
Intro to html, css & sass
Intro to html, css & sassIntro to html, css & sass
Intro to html, css & sass
 
Markup languages and warp-speed documentation
Markup languages and warp-speed documentationMarkup languages and warp-speed documentation
Markup languages and warp-speed documentation
 
Lois Patterson: Markup Languages and Warp-Speed Documentation
Lois Patterson:  Markup Languages and Warp-Speed DocumentationLois Patterson:  Markup Languages and Warp-Speed Documentation
Lois Patterson: Markup Languages and Warp-Speed Documentation
 
Bshmanual
BshmanualBshmanual
Bshmanual
 
Building DSLs with Scala
Building DSLs with ScalaBuilding DSLs with Scala
Building DSLs with Scala
 
CoconutKit
CoconutKitCoconutKit
CoconutKit
 

Cocoa text talk.key

Hinweis der Redaktion