|
License: GPL 3.
Download Source Code
See iFtp page at SourceForge.
Program description Program requirements and current state of their implementation Development Tools Project Structure User Manual Compiling Instruction References
Program description
iFtp features:
- File exchange between iPhone and FTP-server (photos from local gallery, video and text files)
- File content browsing
- Modification of text files on the remote computer via secure connection using iPhone only.
Program requirements and current state of their implementation
1. Support of FTP, FTPS, SFTP protocols:
- connection and data exchange without encryption (implemented)
- connection and data exchange with encryption using SSL\TLS and SSH 2 (not implemented)
- support of active and passive FTP modes (implemented)
- browsing server directory content (implemented)
- updating server directory content (implemented)
- renaming and deleting server directories and files (not implemented)
- always single threaded download of files from the server (not implemented)
- upload photos from iPhone photo gallery to the server and vice versa (not implemented).
2. GUI:
- entering server address, user name and password (implemented)
- reseting server address, user name and password with physical shaking of the device (implemented)
- creation, deleting and storing bookmarks with information about server, user and FTP settings (implemented)
- animated switching between server directories (implemented)
- sorting of directory content by name, modification date and file size (implemented)
- editing of text files on the server in inner editor (not implemented)
Development Tools.
Language: Objective-C. Libraries: Cocoa. IDE: Xcode 3.1 and Interface Builder. Platform: iPhoneOS 2.2.1. Compiler: GCC 4.0. Debugger: GDB integrated in IDE.
All of these tools are included in free package iPhone SDK, that can be downloaded from official site of Apple Computer Inc. (http://developer.apple.com/iphone).
Project Structure
iFtp — project root |-> Classes — classes source code
|-> iFtp — special classes
|- AppDelegate.h — UIApplication class-delegate header |- BookmarksCell.h — representation of a cell in the bookmark table |- BookmarksCellV.h —view of a cell in the bookmark table |- BookmarksVC.h — view controller for bookmark table |- ConnectVC.h — view controller for connection to the server |- Defines.h — common project constants |- FileSystemCell.h — representation of file system element |- FileSystemCellV.h — view of file system element |- FileSystemVC.h — view controller for file system element |- FtpBookmark.h — representation of bookmark |- FtpOptions.h — representation of FTP options |- OptionsVC.h — view controller for options |- RootNC.h — root navigation controller |- AppDelegate.m — implementation of the corresponding class |- BookmarksCell.m —implementation of the corresponding class |- BookmarksCellV.m —implementation of the corresponding class |- BookmarksVC.m —implementation of the corresponding class |- ConnectVC.m —implementation of the corresponding class |- FileSystemCell.m —implementation of the corresponding class |- FileSystemCellV.m —implementation of the corresponding class |- FileSystemVC.m —implementation of the corresponding class |- FtpBookmark.m —implementation of the corresponding class |- FtpOptions.m —implementation of the corresponding class |- OptionsVC.m —implementation of the corresponding class |- RootNC.m —implementation of the corresponding class
|-> iUm — common classes
|- iUmFtpClient.h —FTP-client class |- iUmFtpClientFile.h — representation of element of file system of FTP-server |- iUmNetwork.h — common header file for network classes |- iUmNetworkException.h — basic class-exception for network classes |- iUmSecureSocket.h — wrapper class for the socket with SSL\SSH |- iUmSocket.h — wrapper class for the socket without encryption |- iUmTableViewController.h — inherited class for UITableViewController |- iUmUI.h — common header file for GUI classes |- iUmFtpClient.m —implementation of the corresponding class |- iUmFtpClientFile.m —implementation of the corresponding class |- iUmNetworkException.m —implementation of the corresponding class |- iUmSecureSocket.m —implementation of the corresponding class |- iUmSocket.m —implementation of the corresponding class |- iUmTableViewController.m —implementation of the corresponding class
|-> docs — project documentation and license agreement |-> images — graphic resources |-> iFtp.xcodeproj — project description for IDE |- main.m — detection of program enter point |- iFtp_Prefix.pch — precompiling header file |- Info.plist — standard file of program description for iPhoneOS |- FileSystemVC.xib — file Interface Builder with GUI of separated directory of FTP-server |- MainUI.xib — file Interface Builder with the mainGUI
User manual
Use case is demonstrated in the attached video file iFtp/docs/iFtp.swf. Watch Video
Compiling Instruction
1. Download and install the latest iPhone SDK from Apple Inc. official site 2. Download and unpack the archieve with iFtp. 3. Open iFtp/iFtp.xcodeproj in IDE Xcode. 4. Connect iPhone to the computer and configure Xcode to develop for it. If you don't have iPhone or digital certificate from Apple to develop for iPhone then change project target from Device to Simulator. 5. Click Build button to compile and Build & Go to install to the device and start.
References
1. Apple Developer Documentation. 2. Dave Mark. Beginning IPhone Development: Exploring the IPhone SDK. 3. Erica Sadun. The IPhone Developer’s Cookbook. 4. James Bucanek. Beginning Xcode. 5. James Davidson. Learning Cocoa with Objective-C. 6. Jonathan Zdziarski. Iphone SDK Application Development. 7. Richard Wagner. Professional iPhone and iPod touch programming.
|