Final Projects

quidnuncoceanΚινητά – Ασύρματες Τεχνολογίες

10 Δεκ 2013 (πριν από 3 χρόνια και 4 μήνες)

76 εμφανίσεις

Extensible Networking Platform

1


1
-
CSE 436 – Software Engineering Workshop


Announcements  


Final  Project  descrip4ons  are  due  on  Friday  
 
 


Final  Project  Proposals  are  on  Monday  
Extensible Networking Platform

2


2
-
CSE 436 – Software Engineering Workshop


Today

s  Topics  


Final  Projects  


Audio    


Midterms  
 
Extensible Networking Platform

3


3
-
CSE 436 – Software Engineering Workshop


Project  Descrip4ons  (Due  by  Friday)  


Team  Member

s  names  


1  Paragraph  descrip4on  of  the  project  


Project  Name  
Extensible Networking Platform

4


4
-
CSE 436 – Software Engineering Workshop


Requirements  for  Project  Proposal  (next  Monday)  


Start  with  an  elevator  pitch  (or  similar  introduc4on)  


Mo4vate  the  need  for  the  app  


Explain  the  pieces  involved  in  crea4ng  the  app  


Show  a  distribu4on  of  work  for  each  team  member  


Provide  a  detailed  4meline  with  tasks  and  deliverable  dates  


What  will  be  accomplished  by  the  first  update  mee7ng?  


Will  you  demo  some  skeleton  GUI  by  the  second  update  mee7ng?  


What  will  you  show  at  the  final  presenta7on?  


Create  mockups  of  each  screen  for  your  applica4on  


fluidui.com    
Extensible Networking Platform

5


5
-
CSE 436 – Software Engineering Workshop


Mock  Ups  
Extensible Networking Platform

6


6
-
CSE 436 – Software Engineering Workshop


Final  Project    
Student  Ideas?  
Extensible Networking Platform

7


7
-
CSE 436 – Software Engineering Workshop


Apps  from  Previous  Semesters  
Extensible Networking Platform

8


8
-
CSE 436 – Software Engineering Workshop


MaM  Lanter’s  App  


WashU  Maps  


hMp://itunes.apple.com/us/app/wu-­‐map/
id403202850?mt=8
 


Tying  it  with  informa7on  about  dining  hours  and  
menus  


Adding  campus  transporta7on  and  metro  bus  
routes  to  map  along  with  schedules  


Add  department  loca7ons  to  map  (e.g.  it  will  show  
you  which  building  they  are  in)  
Extensible Networking Platform

9


9
-
CSE 436 – Software Engineering Workshop


MaM  Lanter’s  Apps  


WebSTAC  


Adding  other  WebSTAC  func7onality  (grades,  gpa,  
course  lis7ngs,  registra7on,  registra7on  worksheet,  
etc.)  


Add  Telesis  func7onality  


Add  support  for  adding  campus  card  points  (either  
using  func7on  of  WebSTAC  or  hIps://
acadinfo.wustl.edu/eTransact/)  


Add  other  campus  life  informa7on,  such  as  dining  
loca7ons,  hours,  menus,  important  phone  number
 
Extensible Networking Platform

10


10
-
CSE 436 – Software Engineering Workshop


Boing  Swozzle  


Created  by  Kylia  Miskell  and  Brian  Chen  


Allows  users  to  explore  the  crea4on  of  various  
sounds  effects  


Uses  core  anima4on  and  cool  sound  effects  
Extensible Networking Platform

11


11
-
CSE 436 – Software Engineering Workshop


Meetups  


Created  by  Jake  LaMountain  and  James  Farner  


Helps  you  keep  track  of  your  friends

 schedules  
and  loca4ons  


Use  GPS  coordinates  and  a  map  of  WashU    
Extensible Networking Platform

12


12
-
CSE 436 – Software Engineering Workshop


I  am  Here  


Created  by  HT  Kwon  and  Andrew  Shaw    


Game  where  you  

tag

 your  friends  


Uses  coreLoca4on  and  mapSDK  
Extensible Networking Platform

13


13
-
CSE 436 – Software Engineering Workshop


eFlick  


Created  by  Jus4n  McClain  and  Simon  Tam  


Game  with  a  purpose  


Help  tag  events  happening  at  WashU    


Uses  core  anima4on  and  gestures  
Extensible Networking Platform

14


14
-
CSE 436 – Software Engineering Workshop


Crisp  


Created  by  Carter  Bass,  Daryl  Koopersmith,  and  
Colin  McDonough  



The  Future  of  Food  Preserva4on  and  Smart  
Shopping

 


Keeps  track  of  when  food  will  expire  


Uses  SQLite  database  and  4mers  to  no4fy  when  
food  is  bad  
Extensible Networking Platform

15


15
-
CSE 436 – Software Engineering Workshop


Crisp  Screenshots  
Extensible Networking Platform

16


16
-
CSE 436 – Software Engineering Workshop


iFitness  Manager  


Developed  by  Eric  Peters  in  the  Fall  2009  
Semester  


Con4nued  on  as  an  independent  study  


Currently  for  sale  on  the  App  Store  


Paid  and  Free  Versions  available  
 
Extensible Networking Platform

17


17
-
CSE 436 – Software Engineering Workshop


iFitness  Manager  
Extensible Networking Platform

18


18
-
CSE 436 – Software Engineering Workshop


iDrink  


Developed  by  Josh  Mason  and  Julie  Betlach  


Elevator  Pitch:  


Do  you  have  various  alcohols  and  other  ingredients  
and  need  to  make  a  drink,  but  don

t  know  what  to  
mix  together?  
Extensible Networking Platform

19


19
-
CSE 436 – Software Engineering Workshop


Gomoku  and  Sudoku  
Extensible Networking Platform

20


20
-
CSE 436 – Software Engineering Workshop


Amber  Alert  
Extensible Networking Platform

21


21
-
CSE 436 – Software Engineering Workshop


Games  with  a  Purpose  
Extensible Networking Platform

22


22
-
CSE 436 – Software Engineering Workshop


Demos  
Extensible Networking Platform

23


23
-
CSE 436 – Software Engineering Workshop


Audio  
Extensible Networking Platform

24


24
-
CSE 436 – Software Engineering Workshop


Uses  for  Audio  


Sound  effects  


buIon  clicks  


alert  sounds  


short  sounds  accompanying  user  ac7ons  


Arbitrary  length  sounds  (music,  podcasts,  spoken  content)  


Streamed  content  from  web  services  


Recording  audio  
Extensible Networking Platform

25


25
-
CSE 436 – Software Engineering Workshop


How  to  do  it?  


Could  be  complex:  


Poten7ally  mul7ple  simultaneous  sources  


Numerous  possible  outputs  


Dynamic  events,  oSen  out  of  user

s  control  


Different  priori7es  for  seemingly  similar  ac7ons  


The  OS  manages  the  sound  system  


You  can  ask  for  behavior,  but  the  OS  has  control  
Extensible Networking Platform

26


26
-
CSE 436 – Software Engineering Workshop


CoreAudio  


High  level,  easy  to  use  


System  Sound  API  -­‐  short  sounds  


AVAudioPlayer  class  -­‐  ObjC,  simple  API  


Lower  level,  takes  more  effort  but  much  more  control  


Audio  Toolbox  -­‐  recording  and  playback,  streaming,  full  control  


Audio  Units  -­‐  processing  audio  


OpenAL  -­‐  3D  posi7onal  sound  


Which  one  you  use  depends  on  what  you

re  trying  to  do  


Many  of  you  are  fine  with  System  Sounds  and  AVAudioPlayer  
Extensible Networking Platform

27


27
-
CSE 436 – Software Engineering Workshop


Playing  Short  Sounds  



short

 means  less  than  5  seconds  


Very  simple  API,  but  has  restric4ons  


No  looping  


No  volume  control  


Immediate  playback  


Limited  set  of  formats  


Linear  PCM  or  IMA4  


.caf,  .aif  or  .wav  file  
Extensible Networking Platform

28


28
-
CSE 436 – Software Engineering Workshop


Playing  Short  Sounds  


Two  step  process  


Register  the  sound,  get  a  

sound  ID

 in  return  


Play  the  sound  


Op7onally  can  get  callback  when  sound  finishes  playing  
 
NSURL  *fileURL  =  ...  //  url  to  a  file  
SystemSoundID  myID;  
 
//  First  register  the  sound  
AudioServicesCreateSystemSoundID  ((CFURLRef)fileURL,  &myID);  
 
//  Then  you  can  play  the  sound  
AudioServicesPlaySystemSound  (myID);  
Extensible Networking Platform

29


29
-
CSE 436 – Software Engineering Workshop


Playing  Short  Sounds  


Clean  up  


Dispose  of  sound  ID  when  you

re  done  


Or  if  you  get  a  memory  warning  
 
SystemSoundID  myID;  
//  dispose  of  the  previously  registered  sound  
AudioServicesDisposeSystemSoundID  (myID);  
Extensible Networking Platform

30


30
-
CSE 436 – Software Engineering Workshop


Feel  the  vibra4on  


System  sound  API  allows  for  triggering  the  phone

s  vibra4on  


Use  the  special  system  sound  ID  kSystemSoundID_Vibrate  


Does  nothing  on  iPod  touch  
-­‐  (void)vibrate  {  
 
//  trigger  the  phone

s  vibra4on  
 
AudioServicesPlaySystemSound  
}  
Extensible Networking Platform

31


31
-
CSE 436 – Software Engineering Workshop


Conver4ng  Sounds  


Command  line  u4lity  to  convert  sounds  
 
 
/
usr
/bin/
afconvert
 


Supports  wide  variety  of  input  and  output  formats  


See  man  page  for  details  


Easily  convert  sounds  to  System  Sounds  formats  
/
usr
/bin/
afconvert
 -­‐f  
aiff
 -­‐d  BEI16  input.mp3  output.aif  
Extensible Networking Platform

32


32
-
CSE 436 – Software Engineering Workshop


AVAudioPlayer  


Play  longer  sounds  (>  5  seconds)  


Locally  stored  files  or  in-­‐memory  (no  network  streaming)  


Can  loop,  seek,  play,  pause  


Provides  metering  


Play  mul4ple  sounds  simultaneously  


Cocoa-­‐style  API  


Ini7alize  with  file  URL  or  data  


Allows  for  delegate  


Supports  many  more  formats  


Everything  the  
AudioFile
 API  supports  
Extensible Networking Platform

33


33
-
CSE 436 – Software Engineering Workshop


AVAudioPlayer  


Create  from  file  URL  or  data  
 


Simple  methods  for  star4ng/stopping  
 
AVAudioPlayer  *player;
 
NSString  *path  =  [[NSBundle  mainBundle]  pathForResource...];
 
NSURL  *url  =  [NSURL  fileURLWithPath:path];  
player  =  [[AVAudioPlayer  alloc]  initWithContentsOfURL:url];  
 
if  (!player.playing)  {  
 
[player  play];  
}  else  {  
 
[player  pause];  
}  
Extensible Networking Platform

34


34
-
CSE 436 – Software Engineering Workshop


AVAudioPlayerDelegate  


Told  when  playback  finishes  


Informed  of  audio  decode  errors  


Given  hooks  for  handling  interrup4ons  


Incoming  phone  calls  
Extensible Networking Platform

35


35
-
CSE 436 – Software Engineering Workshop


OpenAL  


High  level,  cross-­‐platorm  API  for  3D  audio  mixing  


Great  for  games  


Mimics  OpenGL  conven7ons  


Models  audio  in  3D  space  


Buffers:  Container  for  Audio  


Sources:  3D  point  emiang  Audio  


Listener:  Posi7on  where  Sources  are  heard  


More  Informa4on:  hMp://www.openal.org/  
Extensible Networking Platform

36


36
-
CSE 436 – Software Engineering Workshop


Playing  Video  


Uses  for  Video:  


Provide  cut-­‐scene  anima7on  in  a  game  


Stream  content  from  web  sites  


Play  local  movies  


Play  videos  from  applica4on  bundle  or  remote  
URL  


Always  full  screen  


Configurable  scaling  modes  


Op7onal  controls  


Supports:  


.
mov
,  .mp4,  .m4v,  .3gp  
Extensible Networking Platform

37


37
-
CSE 436 – Software Engineering Workshop


Audio  Demo  
Extensible Networking Platform

38


38
-
CSE 436 – Software Engineering Workshop


Cocos  2D  API  and  Example  
Extensible Networking Platform

39


39
-
CSE 436 – Software Engineering Workshop


Midterm  
Extensible Networking Platform

40


40
-
CSE 436 – Software Engineering Workshop


Results