Getting Started with SpreadsheetView

Getting Started with SpreadsheetView

#5.2 Creators Learning English Meetup for Mobile @ Oisix
https://clem.connpass.com/event/55548/

This slides are based on my talk at potatotips #40 the other day.

5eee847529e8f5ec2f634a85075fd5aa?s=128

Satoshi Hachiya

May 29, 2017
Tweet

Transcript

  1. Getting Started with SpreadsheetView #5.2 Creators Learning English Meetup for

    Mobile @ Oisix - Monday May 29th 2017
  2. Satoshi Hachiya Twitter: @jpmartha_jp • Living in Kobe ⚓ •

    Developing an iOS app, Player! • Organizing international conferences, try! Swift Tokyo "& try! Swift NYC # • Talked at Brooklyn Swift Developers $
  3. kishikawakatsumi/SpreadsheetView https://github.com/kishikawakatsumi/SpreadsheetView

  4. SpreadsheetView • Over 1,500 stars for about 2 weeks ✨

    • Created by Katsumi Kishikawa
  5. Features (1/2) • Fixed column and row headers • Merge

    cells • Circular infinite scrolling automatically • Customize gridlines and borders for each cell https://github.com/kishikawakatsumi/SpreadsheetView/blob/ master/README.md
  6. Features (2/2) • Customize inter cell spacing vertically and horizontally

    • Fast scrolling, memory efficient • UICollectionView like API • Well unit tested https://github.com/kishikawakatsumi/SpreadsheetView/blob/ master/README.md
  7. Let's get started ✊

  8. Examples • Schedule • Gantt Chart • Timetable

  9. Examples • Class Data

  10. UICollectionView like API func numberOfColumns(in spreadsheetView: SpreadsheetView) -> Int func

    numberOfRows(in spreadsheetView: SpreadsheetView) -> Int func spreadsheetView(_ spreadsheetView: SpreadsheetView, cellForItemAt indexPath: IndexPath) -> Cell?
  11. Merge cells

  12. Merge cells example func mergedCells(in spreadsheetView: SpreadsheetView) -> [CellRange] {

    return [ CellRange(from: (row: 0, column: 1), to: (row: 0, column: 2)), CellRange(from: (row: 0, column: 3), to: (row: 0, column: 4)), CellRange(from: (row: 2, column: 0), to: (row: 13, column: 0)), CellRange(from: (row: 14, column: 0), to: (row: 25, column: 0)), CellRange(from: (row: 26, column: 0), to: (row: 37, column: 0)), CellRange(from: (row: 38, column: 0), to: (row: 49, column: 0)), CellRange(from: (row: 50, column: 0), to: (row: 61, column: 0)), CellRange(from: (row: 62, column: 0), to: (row: 73, column: 0)), CellRange(from: (row: 74, column: 0), to: (row: 85, column: 0)), CellRange(from: (row: 86, column: 0), to: (row: 97, column: 0)), CellRange(from: (row: 98, column: 0), to: (row: 109, column: 0)), CellRange(from: (row: 110, column: 0), to: (row: 121, column: 0)), CellRange(from: (row: 122, column: 0), to: (row: 133, column: 0)), CellRange(from: (row: 8, column: 1), to: (row: 22, column: 1)), CellRange(from: (row: 23, column: 1), to: (row: 25, column: 1)) ] }
  13. Merge cells example

  14. Tapping cells func spreadsheetView(_ spreadsheetView: SpreadsheetView, didSelectItemAt indexPath: IndexPath) {

    print(indexPath) } ! [1, 8] ! [1, 23] ! [1, 26] ! [1, 30]
  15. Other frameworks? !

  16. Repository Latest commit Fixed column and row headers Merge cells

    Star kishikawakatsumi /SpreadsheetView 2017 ✅ ✅ 1,532 stuffrabbit/ SwiftSpreadsheet 2017 ✅ 379 mutualmobile/ MMSpreadsheetV iew 2013 ✅ 171 darrarski/ DRCollectionView TableLayout-iOS 2015 ✅ 67 ʢResearched by !ʣ
  17. Great !

  18. Appendix: My English Tips • Speak loudly • Tell the

    spelling if you cannot pronounce it correctly • Nobody expects non-native speaker to speak fluent English
  19. Thanks !

  20. Questions?